I'm currently working on mashing our mcollective and puppet rigs together into one big nodelessly configured family by using Whack's nodeless setup, hacked about to search node roles from the same mongodb that Volcane's mcollective registration and puppet searching. The idea here is to be able to add user-set "roles" to each node in the database - something that is only ever set by hand unlike the registration data which should only ever be set by a node.
In order to do this, I hacked Volcane's mongodb registration code about a bit so that it would only do atomic updates rather than blatting the entire document whenever it updated, meaning you can put in user defined fields as well. Then the guys who wrote the original code did it on the main branch (albeit as a side effect to fixing other things) but in a much less shitty way because they can code and I tend to do something more akin to hitting ruby with a stick.
I'm now back to working on my frontend to assign these roles through a point and drool interface.