If you're not set on Mexico I would suggest looking into the Dreams resort in La Romana in the Dominican Republic. Best place by far in the Caribbean, in my experience. Lots of restaurants and you don't need reservations and most don't have dress codes (trust me this is key when you're down there). Good snorkeling right of the beach, super calm water, and one of the best dive shops right on the beach as well. I even got married there and I still like it, that should tell you something
