I2C is getting the best of me...

I don't see an endTransmission function call anywhere.

    Wire.beginTransmission(I2C_address);
    Wire.write(register_address);
// add this
    Wire.endTransmission();

edit: I see it now. You have it at the end of the next line. I guess you need to check the return value.