Minecraft wiki entry for Pufferfish, associated text: In real life, pufferfish use their spikes for intimidation purposes and not to inject venom. Their flesh is toxic, which is reflected accurately in-game.
Pufferfish's damage and poison time is directly related to its current PuffState data value, which can be changed using the /data command.
There are three textures for the three different PuffState data values in Minecraft. Exceeding PuffState 2 does not visually increase the pufferfish size, but does create a bigger shadow on the ground. All sizes of pufferfish textures are contained in the same texture file.