How many bytes can be sent in a single i2c message?
This 32 byte limitation is not a real limitation of the I2C bus.  It's just a software limitation in the library that you are using.

To give you an counter-example, there is an EEPROM chip with I2C interface, which has a 128 byte write buffer (24LC512).  This EEPROM is not an exception, it's just one example.

As far as I know, I2C spec doesn't have the limit on the number of bytes after the address byte.