Hey, at least Max gives an error message now! Back in the old days your object would instantiate, but the parameters at instantiation time were garbage.
It’s interesting to see that this problem is still alive. But I went over to A_GIMME for this sort of thing, well, in about Max 3.5 days. As much as A_DEFFLOAT & Co. are convenient, A_GIMME gives you more control over default handling at the end of the day. And Joshua wrote some macros to ease the pain. They must be floating around one of the ext_XXX.h header files. (I wrote my own before JKC’s were around, and I keep on using them, mostly to annoy the C74 folk).