I stayed at Xpu-Ha a couple of weeks ago. There is a snorkeling lagoon (saltwater) and a fresh water estuary. Both make for interesting snorkeling, but there isn't a reef so it isn't the greatest snorkeling in the world. The fish mainly gather around some underground concrete tubes and towards to edge. Snorkeling at Xpu-Ha is great if you're not an experienced snorkeler or expecting a rainbow of colors on a reef. You'd probably want to go to Xel-Ha or Cozumel for that.
As far as Aventura snorkeling
, we had a room-service waiter at Xpu-Ha tell us that a honeymooning couple was walking on the rocks by the ocean at Aventura (sometime in the past year) and they were swept to their death by the waves :o
. He said it was really tragic for the resort. The waves are quite potent and definitely not safe
for snorkeling. The rocks are very craggy and volcanic-looking so you wouldn't have much chance if a wave started pounding you against them. Xpu-Ha's lagoon is protected from large waves by rocks, but even it can get too rough. The resort (based on decree by the Mexican gov't apparently) post either red, yellow, or green flags. The flags were mostly red while we were there and yellow a few times allowing for some snorkeling. It was never green. The signs say no swimming if it's red, use caution if it's yellow, and no problem if it's green.
Hope that helps...