It looks like the BsonDeserializer maps any C# fields/properties name "Id" to "_id" automatically, even without the [BsonId] or [BsonElement] attributes. This is annoying since sometimes we fall back to Json.net which won't do the same auto-mapping.
I need to create unit tests for all incantations of deserializing fields named "Id", "ID", "_id", etc and make sure they work for named and anonymous types, groupings, etc.