Hi and sorry for the self reply,
I just had an idea how to solve (or 'work around') nameclashes. I'm not a fan of having objects like [maxlib_scale] because it needs a lot of typing, but what about something like this:
void maxlib_scale_setup(void) { scale_class = class_new(gensym("maxlib_scale"), [....] class_addcreator((t_newmethod)value_new, gensym("scale"), A_DEFSYM, 0); [...]
The 'normal' object name would then be 'maxlib_scale' but 'scale' would also work. In case Gem would define it's scale as 'gem_scale' with the optional 'scale' name one could use 'scale' as long as there is just one of the libraries loaded and change to 'maxlib_scale' / 'gem_scale' in case both are used... ?!
Haven't tested it yet... would it work? Would Pd accept to have two (nearly) identical class_addcreator calls?
Olaf