MPU6050 Only Calibrating Along Z-axis

I've got a GY-521 accelerometer/gyro purchased on Amazon HERE connected to an Arduino Uno via I2C. I ran the MPU6050_calibration sketch (found HERE) and got the following values:

MPU6050 Calibration Sketch

Your MPU6050 should be placed in horizontal position, with package letters facing up. 
Don't touch it until you see a finish message.

MPU6050 connection successful

Reading sensors for first time...

Calculating offsets...
-598	-600	20309	0	-4	-3
33	39	15589	0	4	0
-4	6	16552	0	-3	0
-2	5	16343	0	0	0
-2	5	16402	0	-1	0
-3	6	16379	0	0	1

FINISHED!

Sensor readings with offsets:	0	6	16380	0	0	0
Your offsets:	-1136	-895	2010	-42	18	121

Data is printed as: acelX acelY acelZ giroX giroY giroZ
Check that your sensor readings are close to 0 0 16384 0 0 0
If calibration was succesful write down your offsets so you can set them in your projects using something similar to mpu.setXAccelOffset(youroffset)

I then transferred these offsets to the Example MPU6050 DMP sketch, found HERE

The MPU6050 is alive and well, except that there is something wrong with the calibration. When I tilt the sensor through a 90 degree range around each axis individually, only the yaw (Z-axis) appears to be correctly calibrated. It gives values from 0 to 90 degrees and stabilizes at 90.00 degrees when I have rotated through the right angle.

The problem arises with the pitch and roll (x and y axis). When I rotate the sensor 90 degrees around each of these axis, the output value on the serial monitor stabilizes at 50.00. Then as i continue to rotate the sensor, the output values increase to approaching 90.00 (89.95, 89.98,...) but this takes place at approximately 150 degrees. At 180 degrees the value is 20.00.

I am very new to this and extremely confused by what is going on. I would really like to calibrate this as accurately as possible because I intend to use this in making an inclinometer.

Any help sorting this out would be greatly appreciated! Please let me know if you need any more information or clarification.

Thanks,
Luigi

You have to calibrate all three axes for scale and offset. The method you linked (which uses a single device orientation) can't do that.

For an overview of what is required to calibrate an acceleromter, see the Adafruit tutorial.