MAC protocols have been studied under different contexts for decades. In decentralized MAC protocols, transmitter-receiver pairs make independent decisions, which are often sub-optimal due to insufficient knowledge about the communication environment. In this paper, we introduce control-plane cooperation at the MAC layer, where neighboring nodes share control information with transmitter-receiver pairs to aid them in making more informed decisions. This augments conventional cooperation, which sits at the data plane where intermediate nodes help relay data for other nodes. In a multi-channel environment, control-plane cooperation enables neighboring nodes to notify transmitter-receiver pairs of channel conflicts and deaf terminals to prevent collisions and retransmissions. Accordingly, we design a cooperative asynchronous multi-channel MAC protocol called CAM-MAC, which uses a single transceiver and is fully asynchronous. We evaluate CAM-MAC from both theoretical and practical perspectives, and show that it closely approaches system capacity and does not realistically suffer from control channel bottleneck. We compare CAM-MAC with its non-cooperative version, UNCOOP, and three recent multi-channel MAC protocols, MMAC, SSCH and AMCP. The results show that CAM-MAC significantly outperforms all of them. We also implement CAM-MAC and UNCOOP on commercial off-the-shelf hardware. The experimental results confirm the viability of CAM-MAC and the cooperation idea.