A key component of the Internet of things (IoT) ecosystem is wide-area network connectivity, for which cellular network technologies are a promising option through their support of massive machine-type communications (mMTC). However, numerous devices transmitting sporadically small data packets in a highly synchronized way can generate overload on the radio access network. This situation leads to a shortage of resources, especially those associated with the random access procedure for contention, control, and data transmission, causing preamble collision, control message blocking, and data collision. As a result, mMTC traffic can jeopardize the provisioning of quality of service (QoS) to end-devices, decrease the network efficiency, and increase access latency and device energy consumption. This paper proposes medium access control (MAC) techniques for addressing problems related to the support of mMTC in cellularnetworks. First, a solution for allocating control resources with QoS provisioning and access differentiation is provided, including a resource management model, a scheduling algorithm, and a message prioritization policy. Second, a mechanism for reducing data collisions is also proposed. This solution comprises a protocol in which every device with scheduled retransmission uses a probabilistic policy to decide whether to retransmit, a novel method at the device to estimate the number of nodes trying random access, and two different retransmission policies employing this estimation. Results show that the proposals support QoS, decrease access latency, decrease the device energy consumption, and increase resource utilization under massive random access.