1. A method for transmitting layers of a data stream over wireless resources partitioned into slots comprising: receiving feedback indicating channel state information from a set of receiver devices; determining a maximal utility for the set of receiver devices based on the received feedback by determining the utilities of potential assignments of a set of modulation and coding schemes (MCSs) to a set of layers such that data from different layers correlated to a common modulation and coding scheme (MCS) in an assignment is allocated a common resource slot; selecting MCS assignments based on the maximal utility; and transmitting the set of layers to the set of receiver devices in accordance with the selected MCS assignments.