Took Chichen Itza tour which was interesting. We had wanted to see Mayan Ruins so this was okay (even though this was a rerouted port). Overall it was interesting. Bus ride was pretty long; used all day for the excursion. Guides were pretty good too.
We booked this excursion via the tourism hut in the port in Freeport. The 2 hour tour took almost 5 between waiting for transportation, waiting for more people to show up, etc. We had a 9:45 reservation, waited about an hour for the transportation guy to take us to the snorkeling center. He was getting ready to take another group but I spoke up (not entirely kindly). Then when we got to the snorkeling office (which provided the transportation) they hit us up for an additional 10 bucks a person for ride.
Snorkeling platform (though it had engine and steering) had to be towed out to the coral formations. It worked as a snorkeling platform but we definitely understood why cruise lines were not booking directly with this operator.
On a poor - fair - good - excellent scale I would call the snorkeling only fair. Tour operator fed the fish with loaf bread. This did two things. It got all the fish in one area (good, we could see fish) but pulled them off of the coral (bad, we didn't get to see them doing their normal thing).