I2C EEPROM Emulator - arduino.

There are still a couple issues with your code:

void requestEvent(){
    Wire.receive();
    Wire.send(XEEPROM[rQ]);
    rQ++;
}

The requestEvent should only return data - so wire.receive() should go. This may also be the reason why you had issues with using wire.available() - that is you should not expect any data when processing request.

static byte rQ;

The rQ variable is modified in an interrupt handler so must be defined with the volatile flag (volatile byte rQ;)