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.