The maximum login name seems to be defined in sys/param.h (MAXLOGNAME) and utmp.h.
It should be possible to increase this and recompile, but it doesn't seem to be recommended, see:
adduser(8) (RESTRICTIONS section)
http://markmail.org/message/nzaqc2zab5dvttol
As suggested in the above link, you can use mail aliases for mail adresses with >16 characters