Best snorkel areas & Tour Routes for 20-30 day trip + Africa

Hi all. We have flights into JNB. We want to explore Madagascar for 2-4 weeks before the weather turns. We’d like 3-5 days each at a couple top snorkeling/dive areas and 12-16 days touring the island.

After that, we want to go to 1 or 2 top snorkel/dive areas of Mozambique for 6-10 days, and finally 12-16 days of safari (thinking Zimbabwe) and Victoria Falls 2-3 days.

It’s a long trip, so we can’t afford expensive hotels (must be clean & comfortable though). We’d appreciate suggestions on best itinerary logistics, “must see” places, great snorkeling/diving areas & operators, and safaris (can we book when we get there?). Thanks!