Pulau Tioman has good snorkeling. Day trips to the small islands (Pulau Tulai a.k.a. coral island, pulau renggis) just OFF Tioman can be arranged quite cheaply with the local boatmen on the island. In my opinion you get very good snorkeling just off the beach at Salang, the northernmost beach on the island. you'll see turtles, triggerfish, parrotfish, cuttlefish, bumphead parrots... I can go on. From there you can hike to Monkey beach which has decent snorkelling. You can spot sharks in the evenings there. Good, confident swimmers also swim to Pulau Soyah but bear in mind you have to swim across a channel that the big ferries & speedboats use (and they don't stop for swimmers). I thought that was a bit risky so I hired a kayak to take across... a few buoys to moor on to to the north and south of Soyah.
Accomodation is cheap, fan/air con chalets all over the place especially Salang & ABC or you can go to the expensive Berjaya resort or the quiet Penuba Resort. You get amazing sunsets too. There are a couple of bars on Salang if you need a bit of nightlife.
To get to the other islands (Pulau Rawa, P. Besar) you need to get a boat/ferry back to Mersing. I'd avoid Tioman at the weekends cos it gets busy but even then its not that crowded.
And I'd love to go back.
Tioman's #1 fan