content: package thebetweenlands.client.render.model.entity;
  
  import net.minecraft.client.model.ModelBase;
  import net.minecraft.client.model.ModelRenderer;
  import net.minecraft.entity.Entity;
  import net.minecraft.entity.EntityLivingBase;
  import net.minecraft.util.EnumHand;
  import net.minecraft.util.EnumHandSide;
  import net.minecraft.util.math.MathHelper;
  import net.minecraftforge.fml.relauncher.Side;
  import net.minecraftforge.fml.relauncher.SideOnly;
  import thebetweenlands.common.entity.mobs.EntityCryptCrawler;
  @SideOnly(Side.CLIENT)
  public class ModelCryptCrawler extends ModelBase {
      public ModelRenderer[] body_main = new ModelRenderer[2];
      ModelRenderer[] neck = new ModelRenderer[2];
      ModelRenderer[] body_lower = new ModelRenderer[2];
      ModelRenderer[] leg_front_left1 = new ModelRenderer[2];
      ModelRenderer[] leg_front_right1 = new ModelRenderer[2];
      ModelRenderer[] head1 = new ModelRenderer[2];
      ModelRenderer[] snout = new ModelRenderer[2];
      ModelRenderer[] lowerjaw = new ModelRenderer[2];
      ModelRenderer[] ear_left = new ModelRenderer[2];
      ModelRenderer[] ear_right = new ModelRenderer[2];
      ModelRenderer[] cheekybreeky_left = new ModelRenderer[2];
      ModelRenderer[] cheeckybreeky_right = new ModelRenderer[2];
      ModelRenderer[] teeth_upper1 = new ModelRenderer[2];
      ModelRenderer[] teeth_upper2 = new ModelRenderer[2];
      ModelRenderer[] teethlower = new ModelRenderer[2];
      ModelRenderer[] leg_back_left1 = new ModelRenderer[2];
      ModelRenderer[] leg_back_right1 = new ModelRenderer[2];
      ModelRenderer[] tail1 = new ModelRenderer[2];
      ModelRenderer[] tinyurn1 = new ModelRenderer[2];
      ModelRenderer[] tinyurn2 = new ModelRenderer[2];
      ModelRenderer[] tinyurn3 = new ModelRenderer[2];
      ModelRenderer[] leg_back_left2 = new ModelRenderer[2];
      ModelRenderer[] leg_back_left3 = new ModelRenderer[2];
      ModelRenderer[] leg_back_right2 = new ModelRenderer[2];
      ModelRenderer[] leg_back_right3 = new ModelRenderer[2];
      ModelRenderer[] tail2 = new ModelRenderer[2];
      ModelRenderer[] tail3 = new ModelRenderer[2];
      ModelRenderer[] tail4 = new ModelRenderer[2];
      ModelRenderer[] leg_front_left2 = new ModelRenderer[2];
      public ModelRenderer[] leg_front_left3 = new ModelRenderer[2];
      ModelRenderer[] leg_front_right2 = new ModelRenderer[2];
      public ModelRenderer[] leg_front_right3 = new ModelRenderer[2];
      
      public ModelCryptCrawler() {
          textureWidth = 128;
          textureHeight = 64;
          // Multipose model
          leg_front_right1[0] = new ModelRenderer(this, 48, 27);
          leg_front_right1[0].setRotationPoint(-4.0F, 2.0F, -6.0F);
          leg_front_right1[0].addBox(-1.0F, -1.0F, -1.0F, 2, 6, 3, 0.0F);
          setRotateAngle(leg_front_right1[0], 0.27314402793711257F, 0.0F, 0.136659280431156F);
          tinyurn1[0] = new ModelRenderer(this, 80, 0);
          tinyurn1[0].setRotationPoint(2.0F, 6.0F, 3.0F);
          tinyurn1[0].addBox(-1.0F, 0.0F, -2.0F, 2, 3, 2, 0.0F);
          setRotateAngle(tinyurn1[0], 0.136659280431156F, 0.0F, 0.0F);
          leg_front_left2[0] = new ModelRenderer(this, 33, 37);
          leg_front_left2[0].setRotationPoint(0.0F, 5.0F, 2.0F);
          leg_front_left2[0].addBox(-1.01F, 0.0F, -2.0F, 2, 6, 2, 0.0F);
          setRotateAngle(leg_front_left2[0], -0.5918411493512771F, 0.0F, 0.0F);
          leg_back_right1[0] = new ModelRenderer(this, 48, 0);
          leg_back_right1[0].setRotationPoint(-4.0F, 0.0F, 7.0F);
          leg_back_right1[0].addBox(-1.0F, 0.0F, -3.0F, 3, 7, 4, 0.0F);
          setRotateAngle(leg_back_right1[0], 0.27314402793711257F, 0.18203784098300857F, 0.0F);
          body_main[0] = new ModelRenderer(this, 0, 0);
          body_main[0].setRotationPoint(0.0F, 12.0F, 0.0F);
          body_main[0].addBox(-4.0F, 0.0F, -8.0F, 8, 6, 8, 0.0F);
          setRotateAngle(body_main[0], 0.091106186954104F, 0.0F, 0.0F);
          lowerjaw[0] = new ModelRenderer(this, 22, 55);
          lowerjaw[0].setRotationPoint(0.0F, 4.0F, -3.8F);
          lowerjaw[0].addBox(-2.0F, 0.0F, -3.0F, 4, 1, 3, 0.0F);
          setRotateAngle(lowerjaw[0], -0.091106186954104F, 0.0F, 0.0F);
          leg_back_left3[0] = new ModelRenderer(this, 33, 21);
          leg_back_left3[0].setRotationPoint(0.0F, 6.0F, 0.0F);
          leg_back_left3[0].addBox(-1.02F, -2.0F, -3.0F, 2, 2, 3, 0.0F);
          setRotateAngle(leg_back_left3[0], 0.8651597102135892F, 0.0F, 0.0F);
          tinyurn2[0] = new ModelRenderer(this, 80, 6);
          tinyurn2[0].setRotationPoint(-1.0F, 6.0F, 3.0F);
          tinyurn2[0].addBox(-1.0F, 0.0F, -2.0F, 2, 4, 2, 0.0F);
          setRotateAngle(tinyurn2[0], 0.136659280431156F, 0.0F, 0.0F);
          leg_back_right3[0] = new ModelRenderer(this, 48, 21);
          leg_back_right3[0].setRotationPoint(0.0F, 6.0F, 0.0F);
          leg_back_right3[0].addBox(-0.98F, -2.0F, -3.0F, 2, 2, 3, 0.0F);
          setRotateAngle(leg_back_right3[0], 0.8651597102135892F, 0.0F, 0.0F);
          ear_right[0] = new ModelRenderer(this, 26, 43);
          ear_right[0].setRotationPoint(-3.0F, 0.0F, 0.0F);
          ear_right[0].addBox(-1.0F, 0.0F, 0.0F, 2, 2, 0, 0.0F);
          setRotateAngle(ear_right[0], -0.091106186954104F, 0.5462880558742251F, 0.136659280431156F);
          leg_back_right2[0] = new ModelRenderer(this, 48, 12);
          leg_back_right2[0].setRotationPoint(0.0F, 7.0F, 1.0F);
          leg_back_right2[0].addBox(-0.99F, 0.0F, -2.0F, 2, 6, 2, 0.0F);
          setRotateAngle(leg_back_right2[0], -0.7740535232594852F, 0.0F, 0.0F);
          body_lower[0] = new ModelRenderer(this, 0, 15);
          body_lower[0].setRotationPoint(0.0F, 0.0F, 0.0F);
          body_lower[0].addBox(-4.01F, 0.0F, 0.0F, 8, 6, 8, 0.0F);
          setRotateAngle(body_lower[0], -0.22759093446006054F, 0.0F, 0.0F);
          teeth_upper1[0] = new ModelRenderer(this, 27, 60);
          teeth_upper1[0].setRotationPoint(0.0F, 1.0F, -3.0F);
          teeth_upper1[0].addBox(-1.0F, 0.0F, 0.0F, 1, 4, 0, 0.0F);
          setRotateAngle(teeth_upper1[0], -0.136659280431156F, 0.045553093477052F, 0.0F);
          leg_front_right3[0] = new ModelRenderer(this, 48, 46);
          leg_front_right3[0].setRotationPoint(0.0F, 6.0F, 0.0F);
          leg_front_right3[0].addBox(-0.98F, -2.0F, -3.0F, 2, 2, 3, 0.0F);
          setRotateAngle(leg_front_right3[0], 0.5918411493512771F, 0.0F, 0.0F);
          tinyurn3[0] = new ModelRenderer(this, 80, 13);
          tinyurn3[0].setRotationPoint(-4.0F, 4.0F, 3.0F);
          tinyurn3[0].addBox(-1.3F, 0.0F, -2.0F, 2, 3, 2, 0.0F);
          setRotateAngle(tinyurn3[0], 0.136659280431156F, 0.0F, 0.045553093477052F);
          head1[0] = new ModelRenderer(this, 0, 39);
          head1[0].setRotationPoint(0.0F, 0.0F, -3.0F);
          head1[0].addBox(-3.0F, 0.0F, -4.0F, 6, 5, 4, 0.0F);
          setRotateAngle(head1[0], 0.22759093446006054F, 0.0F, 0.0F);
          tail3[0] = new ModelRenderer(this, 64, 12);
          tail3[0].setRotationPoint(0.0F, 0.0F, 3.0F);
          tail3[0].addBox(-1.01F, 0.0F, 0.0F, 2, 2, 3, 0.0F);
          setRotateAngle(tail3[0], -0.22759093446006054F, 0.0F, 0.0F);
          teethlower[0] = new ModelRenderer(this, 22, 60);
          teethlower[0].setRotationPoint(0.0F, 0.0F, -3.0F);
          teethlower[0].addBox(-1.0F, -2.0F, 0.0F, 2, 2, 0, 0.0F);
          setRotateAngle(teethlower[0], -0.36425021489121656F, 0.0F, 0.0F);
          tail1[0] = new ModelRenderer(this, 64, 0);
          tail1[0].setRotationPoint(0.0F, 0.0F, 8.0F);
          tail1[0].addBox(-1.0F, 0.0F, 0.0F, 2, 2, 3, 0.0F);
          setRotateAngle(tail1[0], -0.40980330836826856F, 0.0F, 0.0F);
          tail4[0] = new ModelRenderer(this, 64, 18);
          tail4[0].setRotationPoint(0.0F, 2.0F, 3.0F);
          tail4[0].addBox(-1.01F, -2.0F, 0.0F, 2, 2, 3, 0.0F);
          setRotateAngle(tail4[0], 0.22759093446006054F, 0.0F, 0.0F);
          leg_front_left3[0] = new ModelRenderer(this, 33, 46);
          leg_front_left3[0].setRotationPoint(0.0F, 6.0F, 0.0F);
          leg_front_left3[0].addBox(-1.02F, -2.0F, -3.0F, 2, 2, 3, 0.0F);
          setRotateAngle(leg_front_left3[0], 0.5918411493512771F, 0.0F, 0.0F);
          snout[0] = new ModelRenderer(this, 0, 49);
          snout[0].setRotationPoint(0.0F, 0.0F, -4.0F);
          snout[0].addBox(-2.0F, 0.0F, -3.0F, 4, 2, 3, 0.0F);
          setRotateAngle(snout[0], 0.045553093477052F, 0.0F, 0.0F);
          leg_front_right2[0] = new ModelRenderer(this, 48, 37);
          leg_front_right2[0].setRotationPoint(0.0F, 5.0F, 2.0F);
          leg_front_right2[0].addBox(-0.99F, 0.0F, -2.0F, 2, 6, 2, 0.0F);
          setRotateAngle(leg_front_right2[0], -0.5918411493512771F, 0.0F, 0.0F);
          neck[0] = new ModelRenderer(this, 0, 30);
          neck[0].setRotationPoint(0.0F, 0.0F, -8.0F);
          neck[0].addBox(-3.01F, 0.0F, -3.0F, 6, 5, 3, 0.0F);
          setRotateAngle(neck[0], 0.27314402793711257F, 0.0F, 0.0F);
          leg_front_left1[0] = new ModelRenderer(this, 33, 27);
          leg_front_left1[0].setRotationPoint(4.0F, 2.0F, -6.0F);
          leg_front_left1[0].addBox(-1.0F, -1.0F, -1.0F, 2, 6, 3, 0.0F);
          setRotateAngle(leg_front_left1[0], 0.27314402793711257F, 0.0F, -0.136659280431156F);
          tail2[0] = new ModelRenderer(this, 64, 6);
          tail2[0].setRotationPoint(0.0F, 0.0F, 3.0F);
          tail2[0].addBox(-1.01F, 0.0F, 0.0F, 2, 2, 3, 0.0F);
          setRotateAngle(tail2[0], -0.22759093446006054F, 0.0F, 0.0F);
          leg_back_left2[0] = new ModelRenderer(this, 33, 12);
          leg_back_left2[0].setRotationPoint(0.0F, 7.0F, 1.0F);
          leg_back_left2[0].addBox(-1.01F, 0.0F, -2.0F, 2, 6, 2, 0.0F);
          setRotateAngle(leg_back_left2[0], -0.7740535232594852F, 0.0F, 0.0F);
          leg_back_left1[0] = new ModelRenderer(this, 33, 0);
          leg_back_left1[0].setRotationPoint(4.0F, 0.0F, 7.0F);
          leg_back_left1[0].addBox(-2.0F, 0.0F, -3.0F, 3, 7, 4, 0.0F);
          setRotateAngle(leg_back_left1[0], 0.27314402793711257F, -0.18203784098300857F, 0.0F);
          cheeckybreeky_right[0] = new ModelRenderer(this, 11, 55);
          cheeckybreeky_right[0].setRotationPoint(-2.0F, 0.0F, -3.0F);
          cheeckybreeky_right[0].addBox(0.0F, 0.0F, 0.01F, 2, 4, 3, 0.0F);
          setRotateAngle(cheeckybreeky_right[0], 0.0F, 0.0F, 0.091106186954104F);
          ear_left[0] = new ModelRenderer(this, 21, 43);
          ear_left[0].setRotationPoint(3.0F, 0.0F, 0.0F);
          ear_left[0].addBox(-1.0F, 0.0F, 0.0F, 2, 2, 0, 0.0F);
          setRotateAngle(ear_left[0], -0.091106186954104F, -0.5462880558742251F, -0.136659280431156F);
          cheekybreeky_left[0] = new ModelRenderer(this, 0, 55);
          cheekybreeky_left[0].setRotationPoint(2.0F, 0.0F, -3.0F);
          cheekybreeky_left[0].addBox(-2.0F, 0.0F, 0.01F, 2, 4, 3, 0.0F);
          setRotateAngle(cheekybreeky_left[0], 0.0F, 0.0F, -0.091106186954104F);
          teeth_upper2[0] = new ModelRenderer(this, 30, 60);
          teeth_upper2[0].setRotationPoint(0.0F, 1.0F, -3.0F);
          teeth_upper2[0].addBox(0.0F, 0.0F, 0.0F, 1, 4, 0, 0.0F);
          setRotateAngle(teeth_upper2[0], -0.136659280431156F, -0.045553093477052F, 0.0F);
          body_main[0].addChild(leg_front_right1[0]);
          body_lower[0].addChild(tinyurn1[0]);
          leg_front_left1[0].addChild(leg_front_left2[0]);
          body_lower[0].addChild(leg_back_right1[0]);
          head1[0].addChild(lowerjaw[0]);
          leg_back_left2[0].addChild(leg_back_left3[0]);
          body_lower[0].addChild(tinyurn2[0]);
          leg_back_right2[0].addChild(leg_back_right3[0]);
          head1[0].addChild(ear_right[0]);
          leg_back_right1[0].addChild(leg_back_right2[0]);
          body_main[0].addChild(body_lower[0]);
          snout[0].addChild(teeth_upper1[0]);
          leg_front_right2[0].addChild(leg_front_right3[0]);
          body_lower[0].addChild(tinyurn3[0]);
          neck[0].addChild(head1[0]);
          tail2[0].addChild(tail3[0]);
          lowerjaw[0].addChild(teethlower[0]);
          body_lower[0].addChild(tail1[0]);
          tail3[0].addChild(tail4[0]);
          leg_front_left2[0].addChild(leg_front_left3[0]);
          head1[0].addChild(snout[0]);
          leg_front_right1[0].addChild(leg_front_right2[0]);
          body_main[0].addChild(neck[0]);
          body_main[0].addChild(leg_front_left1[0]);
          tail1[0].addChild(tail2[0]);
          leg_back_left1[0].addChild(leg_back_left2[0]);
          body_lower[0].addChild(leg_back_left1[0]);
          snout[0].addChild(cheeckybreeky_right[0]);
          head1[0].addChild(ear_left[0]);
          snout[0].addChild(cheekybreeky_left[0]);
          snout[0].addChild(teeth_upper2[0]);
          
       // Standing model
          leg_back_right1[1] = new ModelRenderer(this, 48, 0);
          leg_back_right1[1].setRotationPoint(-4.0F, 4.0F, 6.0F);
          leg_back_right1[1].addBox(-1.0F, -1.0F, -3.0F, 3, 7, 4, 0.0F);
          setRotateAngle(leg_back_right1[1], 1.6390387005478748F, -0.045553093477052F, 0.0F);
          tinyurn2[1] = new ModelRenderer(this, 80, 6);
          tinyurn2[1].setRotationPoint(-1.0F, 6.0F, 3.0F);
          tinyurn2[1].addBox(-1.0F, 0.0F, -2.0F, 2, 4, 2, 0.0F);
          setRotateAngle(tinyurn2[1], 1.1383037381507017F, 0.0F, 0.0F);
          leg_front_right2[1] = new ModelRenderer(this, 48, 37);
          leg_front_right2[1].setRotationPoint(0.0F, 5.0F, 2.0F);
          leg_front_right2[1].addBox(-0.99F, 0.0F, -2.0F, 2, 6, 2, 0.0F);
          setRotateAngle(leg_front_right2[1], -0.27314402793711257F, 0.0F, 0.0F);
          body_main[1] = new ModelRenderer(this, 0, 0);
          body_main[1].setRotationPoint(0.0F, 8.0F, 4.0F);
          body_main[1].addBox(-4.0F, 0.0F, -8.0F, 8, 6, 8, 0.0F);
          setRotateAngle(body_main[1], -0.7740535232594852F, 0.0F, 0.0F);
          leg_front_right1[1] = new ModelRenderer(this, 48, 27);
          leg_front_right1[1].setRotationPoint(-4.0F, 2.0F, -6.0F);
          leg_front_right1[1].addBox(-1.0F, -1.0F, -1.0F, 2, 6, 3, 0.0F);
          setRotateAngle(leg_front_right1[1], 0.9105382707654417F, -0.31869712141416456F, -0.091106186954104F);
          neck[1] = new ModelRenderer(this, 0, 30);
          neck[1].setRotationPoint(0.0F, 0.0F, -8.0F);
          neck[1].addBox(-3.01F, 0.0F, -3.0F, 6, 5, 3, 0.0F);
          setRotateAngle(neck[1], 0.36425021489121656F, 0.0F, 0.0F);
          cheeckybreeky_right[1] = new ModelRenderer(this, 11, 55);
          cheeckybreeky_right[1].setRotationPoint(-2.0F, 0.0F, -3.0F);
          cheeckybreeky_right[1].addBox(0.0F, 0.0F, 0.01F, 2, 4, 3, 0.0F);
          setRotateAngle(cheeckybreeky_right[1], 0.0F, 0.0F, 0.091106186954104F);
          body_lower[1] = new ModelRenderer(this, 0, 15);
          body_lower[1].setRotationPoint(0.0F, 0.0F, 0.0F);
          body_lower[1].addBox(-4.01F, 0.0F, 0.0F, 8, 6, 8, 0.0F);
          setRotateAngle(body_lower[1], -0.40980330836826856F, 0.0F, 0.0F);
          head1[1] = new ModelRenderer(this, 0, 39);
          head1[1].setRotationPoint(0.0F, 0.0F, -3.0F);
          head1[1].addBox(-3.0F, 0.0F, -4.0F, 6, 5, 4, 0.0F);
          setRotateAngle(head1[1], 0.5462880558742251F, 0.0F, 0.0F);
          tail1[1] = new ModelRenderer(this, 64, 0);
          tail1[1].setRotationPoint(0.0F, 2.0F, 8.0F);
          tail1[1].addBox(-1.0F, -2.0F, 0.0F, 2, 2, 3, 0.0F);
          setRotateAngle(tail1[1], 0.36425021489121656F, 0.0F, 0.0F);
          leg_front_left2[1] = new ModelRenderer(this, 33, 37);
          leg_front_left2[1].setRotationPoint(0.0F, 5.0F, 2.0F);
          leg_front_left2[1].addBox(-1.01F, 0.0F, -2.0F, 2, 6, 2, 0.0F);
          setRotateAngle(leg_front_left2[1], -0.27314402793711257F, 0.0F, 0.0F);
          snout[1] = new ModelRenderer(this, 0, 49);
          snout[1].setRotationPoint(0.0F, 0.0F, -4.0F);
          snout[1].addBox(-2.0F, 0.0F, -3.0F, 4, 2, 3, 0.0F);
          setRotateAngle(snout[1], 0.045553093477052F, 0.0F, 0.0F);
          teeth_upper2[1] = new ModelRenderer(this, 30, 60);
          teeth_upper2[1].setRotationPoint(0.0F, 1.0F, -3.0F);
          teeth_upper2[1].addBox(0.0F, 0.0F, 0.0F, 1, 4, 0, 0.0F);
          setRotateAngle(teeth_upper2[1], -0.136659280431156F, -0.045553093477052F, 0.0F);
          tail4[1] = new ModelRenderer(this, 64, 18);
          tail4[1].setRotationPoint(0.0F, 0.0F, 3.0F);
          tail4[1].addBox(-1.01F, -2.0F, 0.0F, 2, 2, 3, 0.0F);
          setRotateAngle(tail4[1], 0.22759093446006054F, 0.0F, 0.0F);
          leg_front_left1[1] = new ModelRenderer(this, 33, 27);
          leg_front_left1[1].setRotationPoint(4.0F, 2.0F, -6.0F);
          leg_front_left1[1].addBox(-1.0F, -1.0F, -1.0F, 2, 6, 3, 0.0F);
          setRotateAngle(leg_front_left1[1], 0.9105382707654417F, 0.31869712141416456F, 0.091106186954104F);
          teeth_upper1[1] = new ModelRenderer(this, 27, 60);
          teeth_upper1[1].setRotationPoint(0.0F, 1.0F, -3.0F);
          teeth_upper1[1].addBox(-1.0F, 0.0F, 0.0F, 1, 4, 0, 0.0F);
          setRotateAngle(teeth_upper1[1], -0.136659280431156F, 0.045553093477052F, 0.0F);
          tinyurn3[1] = new ModelRenderer(this, 80, 13);
          tinyurn3[1].setRotationPoint(-4.0F, 4.0F, 3.0F);
          tinyurn3[1].addBox(-1.3F, 0.0F, -1.0F, 2, 3, 2, 0.0F);
          setRotateAngle(tinyurn3[1], 1.1838568316277536F, -0.22759093446006054F, 0.045553093477052F);
          leg_back_left2[1] = new ModelRenderer(this, 33, 12);
          leg_back_left2[1].setRotationPoint(0.0F, 6.0F, 1.0F);
          leg_back_left2[1].addBox(-1.01F, 0.0F, -2.0F, 2, 6, 2, 0.0F);
          setRotateAngle(leg_back_left2[1], -1.0927506446736497F, 0.0F, 0.0F);
          lowerjaw[1] = new ModelRenderer(this, 22, 55);
          lowerjaw[1].setRotationPoint(0.0F, 4.0F, -3.8F);
          lowerjaw[1].addBox(-2.0F, 0.0F, -3.0F, 4, 1, 3, 0.0F);
          setRotateAngle(lowerjaw[1], 0.6373942428283291F, 0.0F, 0.0F);
          leg_front_left3[1] = new ModelRenderer(this, 33, 46);
          leg_front_left3[1].setRotationPoint(0.0F, 6.0F, 0.0F);
          leg_front_left3[1].addBox(-1.02F, -2.0F, -3.0F, 2, 2, 3, 0.0F);
          setRotateAngle(leg_front_left3[1], 1.1838568316277536F, 0.0F, 0.0F);
          tail3[1] = new ModelRenderer(this, 64, 12);
          tail3[1].setRotationPoint(0.0F, 0.0F, 3.0F);
          tail3[1].addBox(-1.01F, -2.0F, 0.0F, 2, 2, 3, 0.0F);
          setRotateAngle(tail3[1], 0.22759093446006054F, 0.0F, 0.0F);
          tinyurn1[1] = new ModelRenderer(this, 80, 0);
          tinyurn1[1].setRotationPoint(2.0F, 6.0F, 3.0F);
          tinyurn1[1].addBox(-1.0F, 0.0F, -2.0F, 2, 3, 2, 0.0F);
          setRotateAngle(tinyurn1[1], 1.1383037381507017F, 0.0F, 0.0F);
          leg_back_right2[1] = new ModelRenderer(this, 48, 12);
          leg_back_right2[1].setRotationPoint(0.0F, 6.0F, 1.0F);
          leg_back_right2[1].addBox(-0.99F, 0.0F, -2.0F, 2, 6, 2, 0.0F);
          setRotateAngle(leg_back_right2[1], -1.0927506446736497F, 0.0F, 0.0F);
          ear_right[1] = new ModelRenderer(this, 26, 43);
          ear_right[1].setRotationPoint(-3.0F, 0.0F, 0.0F);
          ear_right[1].addBox(-1.0F, 0.0F, 0.0F, 2, 2, 0, 0.0F);
          setRotateAngle(ear_right[1], -0.091106186954104F, 0.5462880558742251F, 0.136659280431156F);
          teethlower[1] = new ModelRenderer(this, 22, 60);
          teethlower[1].setRotationPoint(0.0F, 0.0F, -3.0F);
          teethlower[1].addBox(-1.0F, -2.0F, 0.0F, 2, 2, 0, 0.0F);
          setRotateAngle(teethlower[1], -0.36425021489121656F, 0.0F, 0.0F);
          tail2[1] = new ModelRenderer(this, 64, 6);
          tail2[1].setRotationPoint(0.0F, 0.0F, 3.0F);
          tail2[1].addBox(-1.01F, -2.0F, 0.0F, 2, 2, 3, 0.0F);
          setRotateAngle(tail2[1], 0.22759093446006054F, 0.0F, 0.0F);
          leg_back_left1[1] = new ModelRenderer(this, 33, 0);
          leg_back_left1[1].setRotationPoint(4.0F, 4.0F, 6.0F);
          leg_back_left1[1].addBox(-2.0F, -1.0F, -3.0F, 3, 7, 4, 0.0F);
          setRotateAngle(leg_back_left1[1], 1.6390387005478748F, 0.045553093477052F, 0.0F);
          leg_back_left3[1] = new ModelRenderer(this, 33, 21);
          leg_back_left3[1].setRotationPoint(0.0F, 6.0F, 0.0F);
          leg_back_left3[1].addBox(-1.02F, -2.0F, -3.0F, 2, 2, 3, 0.0F);
          setRotateAngle(leg_back_left3[1], 0.7740535232594852F, 0.0F, 0.0F);
          ear_left[1] = new ModelRenderer(this, 21, 43);
          ear_left[1].setRotationPoint(3.0F, 0.0F, 0.0F);
          ear_left[1].addBox(-1.0F, 0.0F, 0.0F, 2, 2, 0, 0.0F);
          setRotateAngle(ear_left[1], -0.091106186954104F, -0.5462880558742251F, -0.136659280431156F);
          leg_back_right3[1] = new ModelRenderer(this, 48, 21);
          leg_back_right3[1].setRotationPoint(0.0F, 6.0F, 0.0F);
          leg_back_right3[1].addBox(-0.98F, -2.0F, -3.0F, 2, 2, 3, 0.0F);
          setRotateAngle(leg_back_right3[1], 0.7740535232594852F, 0.0F, 0.0F);
          cheekybreeky_left[1] = new ModelRenderer(this, 0, 55);
          cheekybreeky_left[1].setRotationPoint(2.0F, 0.0F, -3.0F);
          cheekybreeky_left[1].addBox(-2.0F, 0.0F, 0.01F, 2, 4, 3, 0.0F);
          setRotateAngle(cheekybreeky_left[1], 0.0F, 0.0F, -0.091106186954104F);
          leg_front_right3[1] = new ModelRenderer(this, 48, 46);
          leg_front_right3[1].setRotationPoint(0.0F, 6.0F, 0.0F);
          leg_front_right3[1].addBox(-0.98F, -2.0F, -3.0F, 2, 2, 3, 0.0F);
          setRotateAngle(leg_front_right3[1], 1.1838568316277536F, 0.0F, 0.0F);
          body_lower[1].addChild(leg_back_right1[1]);
          body_lower[1].addChild(tinyurn2[1]);
          leg_front_right1[1].addChild(leg_front_right2[1]);
          body_main[1].addChild(leg_front_right1[1]);
          body_main[1].addChild(neck[1]);
          snout[1].addChild(cheeckybreeky_right[1]);
          body_main[1].addChild(body_lower[1]);
          neck[1].addChild(head1[1]);
          body_lower[1].addChild(tail1[1]);
          leg_front_left1[1].addChild(leg_front_left2[1]);
          head1[1].addChild(snout[1]);
          snout[1].addChild(teeth_upper2[1]);
          tail3[1].addChild(tail4[1]);
          body_main[1].addChild(leg_front_left1[1]);
          snout[1].addChild(teeth_upper1[1]);
          body_lower[1].addChild(tinyurn3[1]);
          leg_back_left1[1].addChild(leg_back_left2[1]);
          head1[1].addChild(lowerjaw[1]);
          leg_front_left2[1].addChild(leg_front_left3[1]);
          tail2[1].addChild(tail3[1]);
          body_lower[1].addChild(tinyurn1[1]);
          leg_back_right1[1].addChild(leg_back_right2[1]);
          head1[1].addChild(ear_right[1]);
          lowerjaw[1].addChild(teethlower[1]);
          tail1[1].addChild(tail2[1]);
          body_lower[1].addChild(leg_back_left1[1]);
          leg_back_left2[1].addChild(leg_back_left3[1]);
          head1[1].addChild(ear_left[1]);
          leg_back_right2[1].addChild(leg_back_right3[1]);
          snout[1].addChild(cheekybreeky_left[1]);
          leg_front_right2[1].addChild(leg_front_right3[1]);
      }
  
      @Override
      public void render(Entity entity, float limbSwing, float limbSwingAngle, float entityTickTime, float rotationYaw, float rotationPitch, float scale) {
      	EntityCryptCrawler cryptCrawler = (EntityCryptCrawler) entity;
  
  		if (cryptCrawler.isBiped()) {
  			body_main[1].render(scale);
  		} else {
  			body_main[0].render(scale);
  		}
  	}
  
  	@Override
  	public void setRotationAngles(float limbSwing, float limbSwingAngle, float entityTickTime, float rotationYaw, float rotationPitch, float unitPixel, Entity entity) {
  		super.setRotationAngles(limbSwing, limbSwingAngle, entityTickTime, rotationYaw, rotationPitch, unitPixel, entity);
  		EntityCryptCrawler crypt_crawler = (EntityCryptCrawler) entity;
  		float heady = MathHelper.sin((rotationYaw / (180F / (float) Math.PI)) * 0.5F);
  		float headx = MathHelper.sin((rotationPitch / (180F / (float) Math.PI)) * 0.5F);
  		if(!crypt_crawler.isBiped()) {
  			neck[0].rotateAngleY = heady;
  		} else {
  			neck[1].rotateAngleY = heady;
  			neck[1].rotateAngleX = 0.36425021489121656F + headx;
  		}
  	}
  
  	@Override
  	public void setLivingAnimations(EntityLivingBase entity, float limbSwing, float limbSwingAngle, float partialRenderTicks) {
  
  		EntityCryptCrawler crypt_crawler = (EntityCryptCrawler) entity;
  
  		if(!crypt_crawler.isBiped()) {
  			float animation = MathHelper.sin((limbSwing * 1.1F + 2) * 0.5F) * 0.3F * limbSwingAngle * 0.3F;
  			float animation2 = MathHelper.sin((limbSwing * 1.1F) * 0.5F) * 0.3F * limbSwingAngle * 0.3F;
  			float animation3 = MathHelper.sin((limbSwing * 1.1F + 4) * 0.5F) * 0.3F * limbSwingAngle * 0.3F;
  			
  			float flap = MathHelper.sin((crypt_crawler.ticksExisted + partialRenderTicks) * 0.3F) * 0.8F;
  			float standingAngle = crypt_crawler.smoothedStandingAngle(partialRenderTicks); 
  			
  			tail1[0].rotateAngleX = -0.40980330836826856F + (standingAngle * 0.75F)- animation * 1F;
  			tail2[0].rotateAngleX = -0.22759093446006054F + (standingAngle * 0.75F)- animation * 3F;
  			tail3[0].rotateAngleX = -0.22759093446006054F + (standingAngle * 0.75F)- animation * 4F;
  			tail4[0].rotateAngleX = 0.22759093446006054F + (standingAngle * 0.75F)- animation * 5F;
  
  		    tinyurn1[0].rotateAngleX = 0.136659280431156F + (standingAngle);
  		    tinyurn2[0].rotateAngleX = 0.136659280431156F + (standingAngle);
  		    tinyurn3[0].rotateAngleX = 0.136659280431156F + (standingAngle);
  	
  			if (crypt_crawler.standingAngle < 0.01f) {
  				leg_front_right1[0].rotateAngleX = 0.27314402793711257F + (animation2 * 8F) + flap * 0.05F;
  				leg_front_right2[0].rotateAngleX = -0.5918411493512771F + (animation2 * 6F) - flap * 0.025F;
  				leg_front_right3[0].rotateAngleX = 0.5918411493512771F -(standingAngle*1.25F) -0.17453292519943295F - animation2 * 18F + flap * 0.05F;
  
  				leg_front_left1[0].rotateAngleX = 0.27314402793711257F + (animation * 8F) + flap * 0.05F;
  				leg_front_left2[0].rotateAngleX = -0.5918411493512771F + (animation * 6F) - flap * 0.025F;
  				leg_front_left3[0].rotateAngleX = 0.5918411493512771F -(standingAngle * 1.25F) -0.17453292519943295F - (animation * 18F) + flap * 0.05F;
  
  				leg_back_right1[0].rotateAngleX = 0.27314402793711257F -(standingAngle * 0.75F) -0.1F - (animation2 * 6F) - flap * 0.05F;
  				leg_back_left1[0].rotateAngleX = 0.27314402793711257F -(standingAngle * 0.75F) -0.1F - (animation3 * 6F) - flap * 0.05F;
  	
  				leg_back_right1[0].rotateAngleY = 0.18203784098300857F - (standingAngle * 0.0625F);
  				leg_back_left1[0].rotateAngleY = -0.18203784098300857F + (standingAngle * 0.0625F);
  
  				leg_back_right2[0].rotateAngleX = standingAngle -0.7740535232594852F + (leg_back_right1[0].rotateAngleX + animation2) + flap * 0.1F;
  				leg_back_left2[0].rotateAngleX = standingAngle -0.7740535232594852F + (leg_back_left1[0].rotateAngleX + animation3) + flap * 0.1F;
  
  				leg_back_right3[0].rotateAngleX = 0.8651597102135892F -(standingAngle * 0.5F) - (leg_back_right1[0].rotateAngleX * 1.25F) - flap * 0.05F;
  				leg_back_left3[0].rotateAngleX = 0.8651597102135892F -(standingAngle * 0.5F) - (leg_back_left1[0].rotateAngleX * 1.25F) - flap * 0.05F;
  
  				body_main[0].rotateAngleX = 0.091106186954104F - standingAngle - (animation2 * 3F) - flap * 0.025F;
  				body_main[0].rotateAngleZ = 0F - animation2 * 1.5F;
  
  				body_lower[0].rotateAngleX = -0.22759093446006054F + standingAngle + (animation2 * 2F) + flap * 0.05F;
  
  				neck[0].rotateAngleX = 0.27314402793711257F -(standingAngle * 0.5F) -0.17453292519943295F + (animation2 * 2.9F) + flap * 0.025F;
  				head1[0].rotateAngleX = -(standingAngle * 0.5F) + 0.17453292519943295F;
  				head1[0].rotateAngleZ = -(standingAngle * 0.1F * flap * 6F);
  			
  				body_main[0].rotationPointY = 12.0f;
  			} else {
  				leg_front_right1[0].rotateAngleX = 0.27314402793711257F + (standingAngle * 0.5F * flap) + animation2 * 6F;
  				leg_front_left1[0].rotateAngleX = 0.27314402793711257F + (standingAngle * 0.5F * flap) + animation * 6F;
  
  				leg_front_right2[0].rotateAngleX = -0.5918411493512771F + animation2 * 5F;
  				leg_front_left2[0].rotateAngleX = -0.5918411493512771F + animation * 5F;
  
  				leg_front_right3[0].rotateAngleX = 0.5918411493512771F + (standingAngle * 1.25F) -0.17453292519943295F - animation2 * 12F;
  				leg_front_left3[0].rotateAngleX = 0.5918411493512771F + (standingAngle * 1.25F) -0.17453292519943295F - animation * 12F;
  
  				leg_back_right1[0].rotateAngleX = 0.27314402793711257F + (standingAngle * 0.5F) - animation2 * 5F;
  				leg_back_left1[0].rotateAngleX =  0.27314402793711257F + (standingAngle * 0.5F) - animation3 * 5F;
  
  				leg_back_right1[0].rotateAngleY = 0.18203784098300857F - (standingAngle * 0.1625F);
  				leg_back_left1[0].rotateAngleY = -0.18203784098300857F + (standingAngle * 0.1625F);
  
  				leg_back_right2[0].rotateAngleX = -0.7740535232594852F + (standingAngle * 1.25F) + (leg_back_right1[0].rotateAngleX + animation2);
  				leg_back_left2[0].rotateAngleX = -0.7740535232594852F + (standingAngle * 1.25F) + (leg_back_left1[0].rotateAngleX + animation3);
  
  				leg_back_right3[0].rotateAngleX = 0.8651597102135892F +(standingAngle * 0.125F) - leg_back_right1[0].rotateAngleX * 1.25F;
  				leg_back_left3[0].rotateAngleX = 0.8651597102135892F +(standingAngle * 0.125F) - leg_back_left1[0].rotateAngleX * 1.25F;
  
  				body_main[0].rotateAngleX = 0.091106186954104F - (standingAngle) - animation2 * 2F;
  				body_lower[0].rotateAngleX = -0.22759093446006054F - (standingAngle * 0.5F) + animation2 * 2F;
  
  				neck[0].rotateAngleX = 0.27314402793711257F + (standingAngle * 0.25F) -0.17453292519943295F + animation2 * 2.9F;
  				head1[0].rotateAngleX = 0.17453292519943295F + (standingAngle * 0.5F);
  				
  				body_main[0].rotateAngleZ = 0F - animation2 * 1.5F * (1 - standingAngle);
  				
  				body_main[0].rotationPointY = 12.0f - standingAngle * 5.8f;
  			}
  			if (!crypt_crawler.onGround) {
  				lowerjaw[0].rotateAngleX = -0.091106186954104F;
  			} else {
  				if (standingAngle > 0) {
  					lowerjaw[0].rotateAngleX = 0.091106186954104F + flap * 0.5F;
  				} else {
  					lowerjaw[0].rotateAngleX = -0.091106186954104F + flap * 0.3F;
  				}
  			}
  		} else {
  			float animation = MathHelper.sin(limbSwing * 0.4F) * limbSwingAngle * 0.2F;
  			float flap = MathHelper.sin((crypt_crawler.ticksExisted + partialRenderTicks) * 0.3F) * 0.8F;
  			tail1[1].rotateAngleX = 0.36425021489121656F - animation * 0.25F;
  			tail2[1].rotateAngleX = 0.22759093446006054F - animation * 0.5F;
  			tail3[1].rotateAngleX = 0.22759093446006054F - animation * 0.75F;
  			tail4[1].rotateAngleX = 0.22759093446006054F - animation * 1F;
  			if (!crypt_crawler.isBlocking()) {
  				leg_front_right1[1].rotateAngleX = 0.9105382707654417F - 1F + animation * 2F;
  				leg_front_left1[1].rotateAngleX = 0.9105382707654417F - 1F - animation * 2F;
  
  				leg_front_right1[1].rotateAngleZ = -0.091106186954104F + 0.25F;
  				leg_front_left1[1].rotateAngleZ = 0.091106186954104F - 0.25F;
  
  				leg_front_right1[1].rotateAngleY = -0.31869712141416456F;
  				leg_front_left1[1].rotateAngleY = 0.31869712141416456F;
  
  				leg_front_right2[1].rotateAngleX = -0.27314402793711257F;
  				leg_front_left2[1].rotateAngleX = -0.27314402793711257F;
  
  				leg_front_right3[1].rotateAngleX = 1.1838568316277536F;
  				leg_front_left3[1].rotateAngleX = 1.1838568316277536F;
  				leg_front_left3[1].rotateAngleZ = 0.0F;
  			} else {
  				leg_front_right1[1].rotateAngleX = 0.9105382707654417F - 1F;
  				leg_front_left1[1].rotateAngleX = 0.9105382707654417F - 1F - (animation - flap * 0.025F);
  
  				leg_front_right1[1].rotateAngleZ = -0.091106186954104F + 0.25F;
  				leg_front_left1[1].rotateAngleZ = 0.091106186954104F - 0.25F;
  
  				leg_front_right1[1].rotateAngleY = -0.31869712141416456F;
  				leg_front_left1[1].rotateAngleY = 0.6F;
  
  				leg_front_right2[1].rotateAngleX = -0.27314402793711257F;
  				leg_front_left2[1].rotateAngleX = -0.27314402793711257F;
  
  				leg_front_right3[1].rotateAngleX = 1.1838568316277536F;
  				leg_front_left3[1].rotateAngleX = 1.6F;
  				leg_front_left3[1].rotateAngleZ = 0.8F;
  			}
  
  			leg_back_right1[1].rotateAngleX = 1.6390387005478748F + animation * 5F - flap * 0.05F;
  			leg_back_left1[1].rotateAngleX =  1.6390387005478748F  - animation * 5F - flap * 0.05F;
  
  			leg_back_right1[1].rotateAngleY = -0.045553093477052F;
  			leg_back_left1[1].rotateAngleY = -0.045553093477052F;
  
  			leg_back_right2[1].rotateAngleX = -1.0927506446736497F - animation * 5F + flap * 0.05F;
  			leg_back_left2[1].rotateAngleX = -1.0927506446736497F + animation * 5F + flap * 0.05F;
  
  			leg_back_right3[1].rotateAngleX = 0.7740535232594852F + animation * 5F - flap * 0.05F;
  			leg_back_left3[1].rotateAngleX = 0.7740535232594852F - animation * 5F - flap * 0.05F;
  			
  
  			body_main[1].rotateAngleX = -0.7740535232594852F - animation - flap * 0.025F;
  
  			body_lower[1].rotateAngleX = -0.40980330836826856F + animation + flap * 0.05F;
  
  			head1[1].rotateAngleX = 0.5462880558742251F;
  
  			if (!crypt_crawler.onGround)
  				lowerjaw[1].rotateAngleX = -0.091106186954104F;
  			else
  				lowerjaw[1].rotateAngleX = 0.091106186954104F + flap * 0.5F;
  
  			/// EEEHHH fricking annoying angles
  			EnumHandSide enumhandside = this.getMainHand(crypt_crawler);
  			ModelRenderer modelrenderer = this.getArmForSide(enumhandside);
  			if (swingProgress > 0.0F) {
  				float f1 = swingProgress;
  				body_main[1].rotateAngleY = MathHelper.sin(MathHelper.sqrt(f1) * ((float) Math.PI * 2F)) * 0.5F;
  
  				if (enumhandside == EnumHandSide.LEFT)
  					body_main[1].rotateAngleY *= -1.0F;
  
  				f1 = 1.0F - swingProgress;
  				f1 = f1 * f1;
  				f1 = f1 * f1;
  				f1 = 1.0F - f1;
  				float f2 = MathHelper.sin(f1 * (float) Math.PI);
  				float f3 = MathHelper.sin(swingProgress * (float) Math.PI) * -(head1[1].rotateAngleX + 0.7F) * 0.75F;
  				modelrenderer.rotateAngleX = (float) ((double) modelrenderer.rotateAngleX - ((double) f2 * 0.8D + (double) f3));
  				modelrenderer.rotateAngleY += body_main[1].rotateAngleY;
  				modelrenderer.rotateAngleZ += MathHelper.sin(swingProgress * (float) Math.PI) * -0.4F;
  			}
  		}
  	}
  
  	public void postRenderArm(float scale, EnumHandSide side) {
  		getArmForSide(side).postRender(scale);
  	}
  
  	protected ModelRenderer getArmForSide(EnumHandSide side) {
  		return side == EnumHandSide.LEFT ? leg_front_left1[1] : leg_front_right1[1];
  	}
  
  	protected EnumHandSide getMainHand(Entity entityIn) {
  		if (entityIn instanceof EntityLivingBase) {
  			EntityLivingBase entitylivingbase = (EntityLivingBase) entityIn;
  			EnumHandSide enumhandside = entitylivingbase.getPrimaryHand();
  			return entitylivingbase.swingingHand == EnumHand.MAIN_HAND ? enumhandside : enumhandside.opposite();
  		} else
  			return EnumHandSide.RIGHT;
  	}
  
      public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) {
          modelRenderer.rotateAngleX = x;
          modelRenderer.rotateAngleY = y;
          modelRenderer.rotateAngleZ = z;
      }
  }