Once again, Metagross cannot learn Snarl. It's not even good against Dark types. As SPG said, Metagross isn't weak to Dark and Ghost-type moves here.
If you really hate Dark-type Pokémon (Umbreon/Krokorok), Metagross learns Hammer Arm by level. As for Ghost-type Pokémon, both Gengar and Drifblim are rather frail and Meteor Mash/Zen Headbutt will do perfectly fine. Zen Headbutt is even super-effective against Gengar.
Rock and Steel resist Normal, while Ghost is completely immune to it.
Explosion isn't a terrible option when used correctly, but it's not for everyone.