"newgrp: too many groups" - why is it complaining?
From the source code of newgrp

if (ngrps == NGROUPS_MAX)
    warnx("too many groups");


and I think  NGROUPS_MAX is defined as 16.

That is given in syslimits.h