Thank you! I think I more or less understand things now. Once you make your changes and I'm convinced that I really do know what's going on, I'll try to find time to write things up properly.
But it does seem like there's something missing: general fixed size tracked objects. They would only have a 'flags' field in common, I guess, but there could be a general setup_pool for a given size. Then the whole hierarchy would look like: TrackedObject PMC Buffer STRING I'll probably have more questions once I really start using this stuff properly.