OverridableUuidRepresentationCodecRegistry doesn't need to implement CodecRegistry. It can just implement CodecProvider, and CodecRegistries#withUuidRepresentation can be changed to just return fromProviders(new OverridableUuidRepresentationCodecProvider(codecRegistry, uuidRepresentation)).
It can also move into org.bson.codecs.configuration package and become package private.