The floating point gains built into the library are handy, but are correct only for the 2g range; you'll get erroneous results when using the .get_Gxyz() function and a range other than 2. A solution in .get_Gxyz() would be to multiply each result by (range/2), e.g. 8 for the 16g range.