I've always had issue with both that and how he was able to stay hidden for so long at Marineford when there's virtually no way for the Blackbeard Pirates to sneak in without him being seen. According to the One Piece Visual Dictionary, he's eaten a Paramecia DF that allows him to be taller than most giants, so it could be it allows him to freely control his size to shrink when necessary. There is the issue of him not drowning in the water, though that's likely because he was too large to do so.