[Solved] I2C reading more than 1 byte

The Serial.print() can do many things except a nice formatted output.
For example a hex value of "0x03" is printed as 3 with the HEX format.
You could try this:

for(int i=0; i<howmany; i++)
{
  int data = Wire.read();
  if( data < 0x10)
  {
    Serial.print( "0");    // add the extra zero in front.
  }
  Serial.print( data, HEX);
  Serail.print( ",");
}
Serial.println();

A new line is for a new package of data. That means the Master (the software on the computer or the hardware Master device) concatenates the data into a single package. That is very specific behaviour. Is there a setting for that which can be turned off ?

To be sure, you could write the 'howMany' to the Serial port as well.

void receiveEvent(int howMany);
{
  Serial.print( howMany, DEC);
  Serial.print( ":");
  ...

It is possible to make the receiveEvent() function shorter and faster by printing the data in the loop() with a buffer between the receiveEven() and the loop().
It is even possible to omit that buffer by using the empty receiveEvent() trick.