Here's what I'm going with:

```ruby
      def known_serializers
        @known_serializers ||= begin
          serializers = Serialization.constants.select {|c| Serialization.const_get(c).is_a? Class}
          serializer_registry = []
          serializers.map do |serializer|
            klass = Serialization.const_get('%s' % serializer)
            formats = klass.media_types #.new(self, options).()
            serializer_registry += formats.map { |media| { media => klass } }
          end
          serializer_registry.reduce(Hash.new, :merge)
        end
      end
    
      def to_media_type(media_type, options={})
        options = options.merge({ called_media: media_type } )
        build(media_type, options).to_media_type(options)
      end
      
      def build(media_type, options)
        known_serializers[media_type].new(self, options)
      end
```