diff --git a/common/src/comp/body/bird_large.rs b/common/src/comp/body/bird_large.rs
index 361f87263b..ca15f548fb 100644
--- a/common/src/comp/body/bird_large.rs
+++ b/common/src/comp/body/bird_large.rs
@@ -66,7 +66,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
     }
 }
 
-pub const ALL_SPECIES: [Species; 3] = [
+pub const ALL_SPECIES: [Species; 4] = [
     Species::Phoenix,
     Species::Cockatrice,
     Species::Roc,
diff --git a/voxygen/anim/src/bird_large/idle.rs b/voxygen/anim/src/bird_large/idle.rs
index ec9d92a4dc..b42dd6b38a 100644
--- a/voxygen/anim/src/bird_large/idle.rs
+++ b/voxygen/anim/src/bird_large/idle.rs
@@ -52,7 +52,7 @@ impl Animation for IdleAnimation {
 
         next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1);
         next.head.orientation = Quaternion::rotation_z(duck_head_look.x)
-            * Quaternion::rotation_x(0.4 -duck_head_look.y.abs() + wave_slow_cos * 0.01);
+            * Quaternion::rotation_x(0.4 - duck_head_look.y.abs() + wave_slow_cos * 0.01);
 
         next.beak.position = Vec3::new(0.0, s_a.beak.0, s_a.beak.1);
         next.beak.orientation = Quaternion::rotation_x(wave_slow_cos * -0.02 - 0.02);
@@ -72,13 +72,21 @@ impl Animation for IdleAnimation {
 
         next.wing_mid_l.position = Vec3::new(-s_a.wing_mid.0, s_a.wing_mid.1, s_a.wing_mid.2);
         next.wing_mid_r.position = Vec3::new(s_a.wing_mid.0, s_a.wing_mid.1, s_a.wing_mid.2);
-        next.wing_mid_l.orientation = Quaternion::rotation_x(0.1)*Quaternion::rotation_y(-0.1) * Quaternion::rotation_z(0.7);
-        next.wing_mid_r.orientation = Quaternion::rotation_x(0.1)*Quaternion::rotation_y(0.1) * Quaternion::rotation_z(-0.7);
+        next.wing_mid_l.orientation = Quaternion::rotation_x(0.1)
+            * Quaternion::rotation_y(-0.1)
+            * Quaternion::rotation_z(0.7);
+        next.wing_mid_r.orientation = Quaternion::rotation_x(0.1)
+            * Quaternion::rotation_y(0.1)
+            * Quaternion::rotation_z(-0.7);
 
         next.wing_out_l.position = Vec3::new(-s_a.wing_out.0, s_a.wing_out.1, s_a.wing_out.2);
         next.wing_out_r.position = Vec3::new(s_a.wing_out.0, s_a.wing_out.1, s_a.wing_out.2);
-        next.wing_out_l.orientation = Quaternion::rotation_x(0.0) * Quaternion::rotation_y(0.1) * Quaternion::rotation_z(0.55);
-        next.wing_out_r.orientation = Quaternion::rotation_x(0.0) * Quaternion::rotation_y(-0.1) * Quaternion::rotation_z(-0.55);
+        next.wing_out_l.orientation = Quaternion::rotation_x(0.0)
+            * Quaternion::rotation_y(0.1)
+            * Quaternion::rotation_z(0.55);
+        next.wing_out_r.orientation = Quaternion::rotation_x(0.0)
+            * Quaternion::rotation_y(-0.1)
+            * Quaternion::rotation_z(-0.55);
 
         next.leg_l.position = Vec3::new(-s_a.leg.0, s_a.leg.1, s_a.leg.2);
         next.leg_l.orientation = Quaternion::rotation_x(0.0);
diff --git a/voxygen/anim/src/bird_large/run.rs b/voxygen/anim/src/bird_large/run.rs
index e5484b5d21..47b5b6e3fc 100644
--- a/voxygen/anim/src/bird_large/run.rs
+++ b/voxygen/anim/src/bird_large/run.rs
@@ -95,20 +95,28 @@ impl Animation for RunAnimation {
             * Quaternion::rotation_z(shortalt * 0.10);
 
         next.tail_front.position = Vec3::new(0.0, s_a.tail_front.0, s_a.tail_front.1);
-        next.tail_front.orientation = Quaternion::rotation_x(0.6 + short * -0.02);
+        next.tail_front.orientation = Quaternion::rotation_x(0.3 + short * -0.02);
 
         next.tail_rear.position = Vec3::new(0.0, s_a.tail_rear.0, s_a.tail_rear.1);
         next.tail_rear.orientation = Quaternion::rotation_x(-0.2 + short * -0.1);
 
-        next.wing_in_l.position = Vec3::new(-s_a.wing_in.0, s_a.wing_in.1, s_a.wing_in.2);
-        next.wing_in_r.position = Vec3::new(s_a.wing_in.0, s_a.wing_in.1, s_a.wing_in.2);
+        next.wing_in_l.position = Vec3::new(
+            -s_a.wing_in.0,
+            s_a.wing_in.1 + foot1a * 2.0,
+            s_a.wing_in.2 + speednorm * 1.0 + foot1b * 1.0,
+        );
+        next.wing_in_r.position = Vec3::new(
+            s_a.wing_in.0,
+            s_a.wing_in.1 + foot2a * 2.0,
+            s_a.wing_in.2 + speednorm * 1.0 + foot2b * 1.0,
+        );
 
-        next.wing_in_l.orientation = Quaternion::rotation_x(foot2a * 0.5)
-            * Quaternion::rotation_y(-0.8)
-            * Quaternion::rotation_z(0.2);
-        next.wing_in_r.orientation = Quaternion::rotation_x(foot1a * 0.5)
-            * Quaternion::rotation_y(0.8)
-            * Quaternion::rotation_z(-0.2);
+        next.wing_in_l.orientation = Quaternion::rotation_x(foot2a * -0.05 + speednorm * -0.3)
+            * Quaternion::rotation_y(-0.8 + speednorm * 0.55 + foot2b * -0.2)
+            * Quaternion::rotation_z(0.2 + foot2a * 0.6);
+        next.wing_in_r.orientation = Quaternion::rotation_x(foot1a * -0.05 + speednorm * -0.3)
+            * Quaternion::rotation_y(0.8 + speednorm * -0.55 + foot1b * 0.2)
+            * Quaternion::rotation_z(-0.2 + foot1a * -0.6);
 
         next.wing_mid_l.position = Vec3::new(-s_a.wing_mid.0, s_a.wing_mid.1, s_a.wing_mid.2);
         next.wing_mid_r.position = Vec3::new(s_a.wing_mid.0, s_a.wing_mid.1, s_a.wing_mid.2);
@@ -117,10 +125,10 @@ impl Animation for RunAnimation {
 
         next.wing_out_l.position = Vec3::new(-s_a.wing_out.0, s_a.wing_out.1, s_a.wing_out.2);
         next.wing_out_r.position = Vec3::new(s_a.wing_out.0, s_a.wing_out.1, s_a.wing_out.2);
-        next.wing_out_l.orientation =
-            Quaternion::rotation_y(-0.2 + short * 0.05) * Quaternion::rotation_z(0.2);
-        next.wing_out_r.orientation =
-            Quaternion::rotation_y(0.2 + short * -0.05) * Quaternion::rotation_z(-0.2);
+        next.wing_out_l.orientation = Quaternion::rotation_y(-0.2 + short * 0.05)
+            * Quaternion::rotation_z(0.2 + foot2a * 0.3);
+        next.wing_out_r.orientation = Quaternion::rotation_y(0.2 + short * -0.05)
+            * Quaternion::rotation_z(-0.2 + foot1a * 0.3);
 
         next.leg_l.position = Vec3::new(
             -s_a.leg.0 + speednorm * 1.5,