In the updated "simplemsp~" example, the "float" message method declaration accepts a double, not a float as one might expect. Is this a typo, or does Max 6 now secretly pass around doubles, with unsupporting objects just taking the MSB?
void simplemsp_float(t_simplemsp *x, double f);
Also, take a look at this (32-bit perform method):
t_simplemsp *x = (t_simplemsp *)(w);
t_float *inL = (t_float *)(w);
t_float *outL = (t_float *)(w);
int n = (int)w;