The Batu Caves are ~400 million year old limestone karst caves formed by tectonic action pushing up an ancient seabed floor of squished-together shells and coral. They are also a funky mix of geologic and guano science, Hindu holiness, monkey shenanigans, stair workout, and retro-cheese.
To get there, take the KTM train north to Batu Caves (about 30 minutes and MYR 3). When you exit the station, there is a Hindu temple are a couple Hindu-themed caves you can pay to go in. Or, to the opposite end of the park to reach the main Temple Cave. You will know when you get there because of the hordes of tourist groups, monkeys and birds stealing tourist snacks, shops and buses. And the giant Murugan (or Kartikeya, the Hindu god of war), apparently the tallest Murugan statue in the world. And those stairs, oh those 200 or so stairs!
Small monkeys run this place. They are everywhere, making mischief, climbing all over each other and sometimes visitors, and unfortunately eating the junk tourists give them. This monkey reached into the side pocket of my backpack to steal my tiny hand sanitizer bottle. After much effort with their teeth and hands, they had a taste of it:
Apparently alcohol hand sanitizer is not that tasty.
About 2/3 up, the entrance to the Dark Cave is on the left side. At 10 am, they start leading tours which last about an hour and costing MYR 35, which is pricey by Malaysian standards but a worthwhile contribution to conservation efforts and your understanding of the place. My tour guide seemed a bit young and inexperienced (I probably asked difficult questions) but still he knew a lot, and I learned a bunch about the caves and the guano-based ecosystem.
We saw stalactites and stalagmites, tons of fruit and bug-eating bats, cave spiders, cave crickets, and cave centipedes:
We also experienced a wind tunnel (via the Venturi effect), total darkness and a natural sky light: