Hi, whats up there?

I went through something that I really didn't have enough information about it. It was about a flash drive that Windows displayed a wrong size for it. I had some research about that but what I've got is not well classified and I'm kinda confuzed. It seemed that the physical information is stored in MBR and each partition's FAT. I found some texts about it. I used a hex editor and found that bytes in their positions. There I could change them.

My problem is that if the FAT has wrong info then Windows doesn't see the memory correctly. For example windows may see only a portion of memory 60 MBs of a 256MB flash memory for instance. How can this be solved? Am I correct that Windows reads size info from FAT?