Those patches may be split better. Will ccref ultimately be inside DispatchEx? It probably makes sense to move it before doing traversal conversion. It should be possible to keep using it voluntary.
For traversal itself, the describe step should be possible to do based on `dispex_static_data_t`, it already has the name. We could just implement describing on dispex level and not need to worry about it in every object.