I actually like the kinds, as they're an easy way to find the relevant spec for some particular implementation (just search for all of them listing the kind number), and they allow numerous similar implementations to occupy the same space, without having to agree on a spec.
But the M space they occupy should be defined. Also, kind numbers only need to be unique _within a particular M space_, which means the devs working within that space need to keep a list of the kinds. Nobody needs to keep a full list.