So I disagree. The nested array syntax is absolutely wretched. 

There's actually no reason why we can't validate the hash syntax against Mongo::INDEX_TYPES as well (we just don't). I'd be more inclined to fix that instead of guiding people towards that spagetti mess we have to keep around for 1.8.7 support.

I'll update the diff shortly.