Na verdade, quando você md5 uma senha calcula um hash. Em seguida, a cadeia tem mais de 16 caracteres e alguns "hashes" podem colidir entre eles.
Por exemplo, se md5("noroof")
der 9ce405c98406f2f6d5326ee6b51d19cd
, é possível que md5("ididntfixedmyroofwhenicould")
possa dar o mesmo hash 9ce405c98406f2f6d5326ee6b51d19cd
. Lembre-se de que os hashes são compostos por 32 caracteres de "0123456789abcdf" (neste caso, para md5).
Talvez eles forcem 16 caracteres porque o algoritmo que calcula o hash garante que não haverá colisão no banco de dados com uma senha salva anteriormente.