From what I understand, FAT32 uses a 32 bit number for each file to store its file size (and thus FAT32 is limited at ~4GiB files). In FAT each file has a root directory entry, and these entries are what store the value for the file size. This page shows the directory entry's structure for FAT32. This resource suggests that FAT12 uses a 25 bit value for file size, and FAT16 a 31 bit value.
Is the information in the second linked resource correct? If not, what is the true maximum file size for FAT12 and FAT16? If it is true, then why is an irregular number of bits used to store file size for these file systems?
EDIT: Why is it that they are restricted by volume size, whereas FAT32 has a set size? Is it because the file size that it stores is bigger than any supported volume size, or do FAT12 and FAT16 not use a file size as a field in the directory entry?