An ad hoc network is a multi-hop wireless network of mobile nodes without the intervention of fixed infrastructure. Limited bandwidth and mobility require that ad hoc routing protocols be robust, simple, and energy conserving. This paper proposes a new ad hoc multicast routing protocol called neighbor-supporting multicast protocol (NSMP). NSMP adopts a mesh structure to enhance resilience against mobility. And NSMP utilizes node locality to reduce the overhead of route maintenance. NSMP also attempts to improve route efficiency and reduce data transmissions. Our simulation results show that NSMP delivers packets efficiently while substantially reducing control overhead in various environments.