Spectrum-agile radios, also known as cognitive radios, have a great potential to improve spectrum utilization by enabling dynamic access to the spectrum. A key challenge in operating these radios is how to implement an efficient medium access control (MAC) mechanism that adaptively and efficiently allocates transmission powers and spectrum according to the surrounding environment. In this work, we propose a distributed MAC protocol for operating spectrum-agile radios in a multi-hop ad hoc network. Our protocol differs from previous designs in that it exploits the "dual-receive" capability of radios, thus overcoming various channel access problems that are common to multi-channel designs. We conduct theoretical analysis of the protocol, and study its performance via simulations. We show significant improvement in the system throughput under the proposed MAC design. To maximize this throughput, we propose a cross-layer framework for joint adaptive load and medium access controls. In this framework, the loads of individual nodes are adapted based on the values of local MAC parameters. Simulation results show that the proposed scheme achieves more than 90% of the maximum (global) system throughput that is achieved at saturation, while guaranteeing low collision rates.