How to implement field formatters for entity properties I created a custom entity using Entity API that has certain properties defined in hook_schema() and also declared in entityPropertyInfo(), a class extending EntityDefaultMetadataController.

So far so good.

Now I'd like for users to be able to customize if and how these properties get displayed when viewing the entities so I implemented hook_field_extra_fields() and declared them.

Then, in my Controller which extends EntityAPIController I added the properties to the $content array in buildContent() as, outlined here.

It actually works pretty well and properties are rendered and respect the order and visibility settings in "Manage Display".

However, I can't seem to figure out how to add settings in Manage Display to customize the label positioning (inline/above/hidden) and, more importantly, how to specify custom formatters for these properties.

Any clues?
You could create a module providing a "property" field type. Store the the property to be formatted as an instance setting and then apply a formatter to that. It should be relatively straightforward. Relation module has a dummy field module which might help you in figuring out how to code this.