MPU6050 readings not correct

const int MPU_addr=0x68;  // I2C address of the MPU-6050

Addresses are bytes. Get out of the habit of wasting memory.

  AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)    
  AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
  AcZ=Wire.read()<<8|Wire.read();

Wire.read() returns a byte. What happens to a byte when you shift it 8 bits to the left?