What to expect when reading from a register using I2C

If you are going to read just one byte, then why use a while-loop ?
I know you took it from the Sparkfun source code, but that does not mean that you have to write the same cheesy code.
I think that this makes more sense:

    Wire.requestFrom(I2CAddress, 1);
    if (Wire.available() == 1)
    {
      result = Wire.read();
    }

This command is wrong and can be removed: "// slave may send less than requested".

You can turn a parameter that is a pointer into "by reference". Then the source code is easier to read.