A context menu shell extension is a COM object that an application registers against one or more file classes. When you right-click something, the shell loads the handlers that apply and asks each one what it wants to contribute. The handler decides at that moment what to draw, which is why one registration can produce a single entry, a submenu, or a whole group of related commands. Entries and registrations are not one to one.
Enumerating handlers properly requires covering more ground than a single registry sweep suggests. Handlers are registered under file classes, under the pseudo-class that applies to all files, under directory and drive classes, and under file-type association groupings — the last being where archivers and media tools commonly register so they apply to many extensions at once. There are also two registry views on 64-bit Windows, and a handler from a 32-bit application appears only in the 32-bit view. Reading one view produces an inventory that looks complete and is not.
Disabling a handler is where the mechanism matters most. The intuitive approach — deleting the registration — is destructive and hard to reverse, and it can be undone by the application repairing itself on next launch or update. Windows provides a purpose-built alternative: a block list of identifiers that the shell consults and honours. Adding a handler identifier there suppresses it without modifying the application's own registration at all. The application stays installed, fully functional, and unaware; it simply stops being loaded into the menu. Removing the identifier restores it.
One implementation detail is worth knowing because it explains a category of tools that appear to work and do not. That block list exists in both a machine-wide and a per-user location, but the shell only honours the machine-wide one. Writing to the per-user location succeeds — the write returns success, the value is there if you look — and has no effect whatsoever. A tool taking that path reports a successful change while the entry remains in your menu. ContextCleaner writes machine-wide, which is why disabling a handler requires administrator approval, and why it batches every machine-wide operation in an apply into one prompt rather than asking repeatedly.
On honesty: ContextCleaner does not measure how long handlers take to load and makes no claim about menu speed. What it gives you is visibility and control over what is registered.