You can register extended types via the QML_EXTENDED macro. The extension is valid only on the topmost non-composite type in the inheritance chain. So, for example if you have a composite type A that inherits a non-composite B that inherits a non-composite C and both B and C have extensions, then only the extension on B will be visible to clients of A.
The qmltypes format mixes the extension into the specification of the actual type. Therefore, we cannot retrieve this distinction from the qmltypes. We need to change the format so that extensions are listed separately.
Actually, right now, qmltyperegistrar's support for extended types is rather incomplete. It does not generate descriptions for the enums in the Qt object, for example. That's bad.