Kidney exchanges enable transplants when a pair of a patient and an incompatible donor is matched with other similar pairs. In multi-hospital kidney exchanges pairs are pooled from multiple hospitals, and each hospital is able to decide which pairs to report and which to hide and match locally. Modeling the problem as a maximum matching on a random graph, we first establish that the expected benefit from pooling scales as the square-root of the number of pairs in each hospital. We design the xCM mechanism, which achieves efficiency and incentivizes hospitals of moderate-to-large size to fully report their pairs. Reciprocal pairs are crucial in the design, with the probabilistic uniform rule used to ensure incentive alignment. By grouping certain pair types into so-called virtual-reciprocal pairs, xCM extends to handle 3-cycles. We validate the performance of xCM in simulation, demonstrating its efficiency and incentive advantages over the Bonus mechanism [3].Keywords: kidney exchange, random graphs, mechanism design, maximum $ This is a significantly revised version of an extended abstract that appeared in ACM EC'11. In addition to a modified mechanism and an extension to 3-cycles, we also provide complete proofs and extensive simulation results. We wish to thank Itai Ashlagi, Ian Kash, Felix Fischer, Les Valiant and the reviewers from EC'11 for comments on an earlier version, as well as the reviewers and the Associate Editor at GEB.