public void updateRiderPosition() {
    super.updateRiderPosition();

    if (this.prevRearingAmount > 0.0F) {
      float f = MathHelper.sin(this.renderYawOffset * (float) Math.PI / 180.0F);
      float f1 = MathHelper.cos(this.renderYawOffset * (float) Math.PI / 180.0F);
      float f2 = 0.7F * this.prevRearingAmount;
      float f3 = 0.15F * this.prevRearingAmount;
      this.riddenByEntity.setPosition(
          this.posX + (double) (f2 * f),
          this.posY + this.getMountedYOffset() + this.riddenByEntity.getYOffset() + (double) f3,
          this.posZ - (double) (f2 * f1));

      if (this.riddenByEntity instanceof EntityLivingBase) {
        ((EntityLivingBase) this.riddenByEntity).renderYawOffset = this.renderYawOffset;
      }
    }
  }