We stayed at the Occidental Grand a couple of years ago, the grounds are beautifully cut out of the jungle, the rooms are something like 8-12(?) to a building with the buildings each off of a main sidewalk that leads to either the beach or the main lobby building, (no beach front rooms or views), the rooms are huge with safes, stocked fridges and plenty of room to rinse and hang gear in the bathroom, we had both a tub and large shower, I could rinse gear in the tub while my wife showered.
the food was very good, (at that time, this is one thing that can change at an A.I.), something different every day on all buffets, (break, lunch & dinner), not just the same 'ol day in and day out.
we only ate at one of the "reservation only" restaurants, the fancy Mexican one, and it was very good, in fact my wife, who eats shrimp constantly, said that she had a shrimp dish that was quite possilbly the best shrimp she had every eaten, and that meal still holds up today, 2-3 years later.
The best thing is that it's just a short 10 min. boat ride to the reef, and you get a little extra sleep time because it takes the dive ops at least 'till 8:30 to get to you.
The drawbacks are of course the long distance to town, (pretty much a $20 cab ride each way) and there isn't much to do at night down there but drink, they have a small lobby bar and internet area and a "disco" that didn't have much going on any night we were there, but the good news was there was no wait for the pool table
Some friends stayed at Park Royal and weren't super impressed, they had very long waits at the restaurants & they had no way of getting bottled water, if you asked for a water at the bar the only thing you could get was a steirofoam (sp?) cup of ice water...that doesn't go too far in the Mexican heat.