Index: binaries/data/mods/public/simulation/templates/gaia/fauna_bear.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_bear.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_bear.xml	(working copy)
@@ -18,6 +18,9 @@
     <SpecificName>Bear</SpecificName>
     <Icon>gaia/fauna_bear.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Sound>
     <SoundGroups>
       <select>actor/fauna/animal/lion_select.xml</select>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_boar.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_boar.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_boar.xml	(working copy)
@@ -18,6 +18,9 @@
     <SpecificName>Boar</SpecificName>
     <Icon>gaia/fauna_boar.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>150</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_camel.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_camel.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_camel.xml	(working copy)
@@ -12,6 +12,9 @@
   <Obstruction>
     <Unit radius="1.5"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Sound>
     <SoundGroups>
       <select>actor/fauna/animal/camel.xml</select>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_deer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_deer.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_deer.xml	(working copy)
@@ -5,6 +5,9 @@
     <SpecificName>Deer</SpecificName>
     <Icon>gaia/fauna_deer.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <UnitMotion>
     <WalkSpeed>2.0</WalkSpeed>
     <Run>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_elephant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_elephant.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_elephant.xml	(working copy)
@@ -14,6 +14,9 @@
     <SpecificName>Elephant</SpecificName>
     <Icon>gaia/fauna_elephant.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Sound>
     <SoundGroups>
       <select>actor/fauna/animal/elephant_select.xml</select>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_bush.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_bush.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_bush.xml	(working copy)
@@ -53,6 +53,9 @@
   <Obstruction>
     <Unit radius="3.5"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>800</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_infant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_infant.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_infant.xml	(working copy)
@@ -18,6 +18,9 @@
   <Obstruction>
     <Unit radius="1.5"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>100</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_asian.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_asian.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_asian.xml	(working copy)
@@ -53,6 +53,9 @@
   <Obstruction>
     <Unit radius="2.7"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>650</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_gazelle.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_gazelle.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_gazelle.xml	(working copy)
@@ -5,6 +5,9 @@
     <SpecificName>Gazelle</SpecificName>
     <Icon>gaia/fauna_gazelle.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <UnitMotion>
     <Run>
       <Range>600.0</Range>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe.xml	(working copy)
@@ -16,6 +16,9 @@
   <Obstruction>
     <Unit radius="2.0"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>350</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe_infant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe_infant.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe_infant.xml	(working copy)
@@ -12,6 +12,9 @@
   <Obstruction>
     <Unit radius="1.5"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>150</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_goat.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_goat.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_goat.xml	(working copy)
@@ -11,6 +11,9 @@
     <SpecificName>Goat</SpecificName>
     <Icon>gaia/fauna_goat.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>120</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_horse.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_horse.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_horse.xml	(working copy)
@@ -12,6 +12,9 @@
   <Obstruction>
     <Unit radius="1.5"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>200</Amount>
   </ResourceSupply>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_lion.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_lion.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_lion.xml	(working copy)
@@ -18,6 +18,9 @@
     <SpecificName>Lion</SpecificName>
     <Icon>gaia/fauna_lion.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Sound>
     <SoundGroups>
       <select>actor/fauna/animal/lion_select.xml</select>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_lioness.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_lioness.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_lioness.xml	(working copy)
@@ -18,6 +18,9 @@
     <SpecificName>Lion</SpecificName>
     <Icon>gaia/fauna_lion.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Sound>
     <SoundGroups>
       <select>actor/fauna/animal/lion_select.xml</select>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_muskox.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_muskox.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_muskox.xml	(working copy)
@@ -9,6 +9,9 @@
     <SpecificName>Muskox</SpecificName>
     <Icon>gaia/fauna_muskox.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>200</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_pig.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_pig.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_pig.xml	(working copy)
@@ -5,6 +5,9 @@
     <SpecificName>Pig</SpecificName>
     <Icon>gaia/fauna_pig.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <StatusBars>
     <HeightOffset>5.0</HeightOffset>
   </StatusBars>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_rabbit.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_rabbit.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_rabbit.xml	(working copy)
@@ -9,6 +9,9 @@
     <SpecificName>Rabbit</SpecificName>
     <Icon>gaia/fauna_rabbit.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>50</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_sheep.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_sheep.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_sheep.xml	(working copy)
@@ -12,6 +12,9 @@
 	<Classes datatype="tokens">Domestic</Classes>
     <Icon>gaia/fauna_sheep.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Sound>
     <SoundGroups>
       <select>actor/fauna/animal/sheep.xml</select>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_tiger.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_tiger.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_tiger.xml	(working copy)
@@ -18,6 +18,9 @@
     <SpecificName>Tiger</SpecificName>
     <Icon>gaia/fauna_tiger.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Sound>
     <SoundGroups>
       <select>actor/fauna/animal/lion_select.xml</select>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_walrus.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_walrus.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_walrus.xml	(working copy)
@@ -23,6 +23,9 @@
     <SpecificName>Walrus</SpecificName>
     <Icon>gaia/fauna_walrus.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>300</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_wildebeest.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_wildebeest.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_wildebeest.xml	(working copy)
@@ -10,6 +10,9 @@
     <History>The wildebeest (plural wildebeest, wildebeests or wildebai), also called the gnu, is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal. Wildebeest are well known for their annual migration to new pastures in which vast numbers of wildebeest can be seen crossing rivers, such as the Mara River and dying in large numbers as they attempt to reach the other side. Many of them are eaten by crocodiles while others simply drown. Herds of wildebeest possesses what is known as "swarm intelligence", whereby the animals systematically explore and overcome obstacles as one when, for instance, crossing a river or defending against predator attacks.</History>
     <Icon>gaia/fauna_wildebeest.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>150</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_wolf.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_wolf.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_wolf.xml	(working copy)
@@ -18,6 +18,9 @@
     <SpecificName>Wolf</SpecificName>
     <Icon>gaia/fauna_wolf.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <VisualActor>
     <Actor>fauna/wolf.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_wolf_snow.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_wolf_snow.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_wolf_snow.xml	(working copy)
@@ -18,6 +18,9 @@
     <SpecificName>Snow Wolf</SpecificName>
     <Icon>gaia/fauna_wolf_snow.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <VisualActor>
     <Actor>fauna/wolf_snow.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_zebra.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_zebra.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_zebra.xml	(working copy)
@@ -9,6 +9,9 @@
     <SpecificName>Zebra</SpecificName>
     <Icon>gaia/fauna_zebra.png</Icon>
   </Identity>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceSupply>
     <Amount>150</Amount>
     <Type>food.meat</Type>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_metal_alpine.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_metal_alpine.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_metal_alpine.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_mineral">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/metalmine_alpine.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_metal_desert_small.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_metal_desert_small.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_metal_desert_small.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_mineral">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/metalmine_desert_small.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_metal_greek.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_metal_greek.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_metal_greek.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_mineral">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/metalmine_granite_greek.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_metal_mediterranean.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_metal_mediterranean.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_metal_mediterranean.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_mineral">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/metalmine_mediterranean.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_metal_temperate.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_metal_temperate.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_metal_temperate.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_mineral">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/metalmine_granite_temperate.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_metal_tropic.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_metal_tropic.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_metal_tropic.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_mineral">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/metalmine_tropic.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_stone_alpine_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_stone_alpine_a.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_stone_alpine_a.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_rock">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/stonemine_alpine_a.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_stone_desert_small.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_stone_desert_small.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_stone_desert_small.xml	(working copy)
@@ -7,9 +7,6 @@
   <Identity>
     <Icon>gaia/geology_stone_2.png</Icon>
   </Identity>
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/stonemine_desert_small.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_stone_greek.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_stone_greek.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_stone_greek.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_rock">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/stonemine_granite_greek.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_stone_mediterranean.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_stone_mediterranean.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_stone_mediterranean.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_rock">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/stonemine_mediterranean.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_stone_savanna_small.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_stone_savanna_small.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_stone_savanna_small.xml	(working copy)
@@ -7,9 +7,6 @@
   <Identity>
     <Icon>gaia/geology_stone_2.png</Icon>
   </Identity>
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/stonemine_savanna_small.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_stone_temperate.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_stone_temperate.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_stone_temperate.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_rock">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/stonemine_granite.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/gaia/geology_stone_tropic_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/geology_stone_tropic_a.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/gaia/geology_stone_tropic_a.xml	(working copy)
@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Entity parent="template_gaia_geo_rock">
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <VisualActor>
     <Actor>geology/stonemine_tropic.xml</Actor>
   </VisualActor>
Index: binaries/data/mods/public/simulation/templates/template_gaia_geo.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_gaia_geo.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/template_gaia_geo.xml	(working copy)
@@ -10,6 +10,9 @@
   <Obstruction>
     <Static width="7.0" depth="7.0"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch-roll</Anchor>
+  </Position>
   <Selectable>
     <EditorOnly disable=""/>
     <Overlay>
Index: binaries/data/mods/public/simulation/templates/template_gaia_geo_mineral_slabs.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_gaia_geo_mineral_slabs.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/template_gaia_geo_mineral_slabs.xml	(working copy)
@@ -7,9 +7,6 @@
   <Obstruction>
     <Static width="13.0" depth="13.0"/>
   </Obstruction>
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <ResourceSupply>
     <Amount>5000</Amount>
 	<MaxGatherers>24</MaxGatherers>
Index: binaries/data/mods/public/simulation/templates/template_gaia_geo_rock_slabs.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_gaia_geo_rock_slabs.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/template_gaia_geo_rock_slabs.xml	(working copy)
@@ -7,9 +7,6 @@
   <Obstruction>
     <Static width="13.0" depth="13.0"/>
   </Obstruction>
-  <Position>
-    <Anchor>pitch-roll</Anchor>
-  </Position>
   <ResourceSupply>
     <Amount>5000</Amount>
 	<MaxGatherers>24</MaxGatherers>
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml	(working copy)
@@ -42,6 +42,9 @@
   <Obstruction>
     <Unit radius="1.0"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Selectable>
     <Overlay>
       <Texture>
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_elephant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_elephant.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_elephant.xml	(working copy)
@@ -31,6 +31,9 @@
   <Obstruction>
     <Unit radius="4.0"/>
   </Obstruction>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <Selectable>
     <Overlay>
       <Texture>
Index: binaries/data/mods/public/simulation/templates/units/maur_support_elephant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/maur_support_elephant.xml	(revision 13500)
+++ binaries/data/mods/public/simulation/templates/units/maur_support_elephant.xml	(working copy)
@@ -38,6 +38,9 @@
     <stone>10</stone>
     <metal>10</metal>
   </Loot>
+  <Position>
+    <Anchor>pitch</Anchor>
+  </Position>
   <ResourceDropsite>
     <Types>food wood stone metal</Types>
   </ResourceDropsite>
Index: source/simulation2/components/CCmpPosition.cpp
===================================================================
--- source/simulation2/components/CCmpPosition.cpp	(revision 13500)
+++ source/simulation2/components/CCmpPosition.cpp	(working copy)
@@ -30,6 +30,7 @@
 #include "maths/MathUtil.h"
 #include "maths/Matrix3D.h"
 #include "maths/Vector3D.h"
+#include "maths/Vector2D.h"
 #include "ps/CLogger.h"
 
 /**
@@ -58,6 +59,7 @@
 		UPRIGHT = 0,
 		PITCH = 1,
 		PITCH_ROLL = 2,
+		ROLL=3,
 	} m_AnchorType;
 
 	bool m_Floating;
@@ -72,9 +74,11 @@
 	entity_pos_t m_YOffset;
 	bool m_RelativeToGround; // whether m_YOffset is relative to terrain/water plane, or an absolute height
 
-	entity_angle_t m_RotX, m_RotY, m_RotZ;
+	entity_angle_t m_RotX, m_RotY, m_RotZ, m_LastRotX, m_LastRotZ;
 	float m_InterpolatedRotY; // not serialized
 
+	bool recalculateXZRotation;
+
 	static std::string GetSchema()
 	{
 		return
@@ -89,6 +93,7 @@
 				"<choice>"
 					"<value a:help='Always stand straight up'>upright</value>"
 					"<value a:help='Rotate backwards and forwards to follow the terrain'>pitch</value>"
+					"<value a:help='Rotate sidewards to follow the terrain'>roll</value>"
 					"<value a:help='Rotate in all direction to follow the terrain'>pitch-roll</value>"
 				"</choice>"
 			"</element>"
@@ -110,6 +115,8 @@
 			m_AnchorType = PITCH;
 		else if (anchor == L"pitch-roll")
 			m_AnchorType = PITCH_ROLL;
+		else if (anchor == L"roll")
+			m_AnchorType = ROLL;
 		else
 			m_AnchorType = UPRIGHT;
 
@@ -123,6 +130,11 @@
 
 		m_RotX = m_RotY = m_RotZ = entity_angle_t::FromInt(0);
 		m_InterpolatedRotY = 0;
+
+		m_LastRotX = entity_angle_t::Zero();
+		m_LastRotZ = entity_angle_t::Zero();
+
+		recalculateXZRotation = true;
 	}
 
 	virtual void Deinit()
@@ -152,9 +164,22 @@
 			const char* anchor = "???";
 			switch (m_AnchorType)
 			{
-			case UPRIGHT: anchor = "upright"; break;
-			case PITCH: anchor = "pitch"; break;
-			case PITCH_ROLL: anchor = "pitch-roll"; break;
+			case PITCH: 
+				anchor = "pitch"; 
+				break;
+
+			case PITCH_ROLL: 
+				anchor = "pitch-roll"; 
+				break;
+			
+			case ROLL:
+				anchor = "roll";
+				break;
+
+			case UPRIGHT: // upright is the default
+			default: 
+				anchor = "upright"; 
+				break;
 			}
 			serialize.StringASCII("anchor", anchor, 0, 16);
 			serialize.Bool("floating", m_Floating);
@@ -197,6 +222,7 @@
 
 	virtual void MoveTo(entity_pos_t x, entity_pos_t z)
 	{
+		
 		m_X = x;
 		m_Z = z;
 
@@ -207,6 +233,8 @@
 			m_LastZ = m_PrevZ = m_Z;
 		}
 
+		UpdateXZRotation();
+
 		AdvertisePositionChanges();
 	}
 
@@ -216,6 +244,8 @@
 		m_LastZ = m_PrevZ = m_Z = z;
 		m_InWorld = true;
 
+		recalculateXZRotation = true;
+
 		AdvertisePositionChanges();
 	}
 
@@ -319,8 +349,11 @@
 
 	virtual void TurnTo(entity_angle_t y)
 	{
+
 		m_RotY = y;
 
+		UpdateXZRotation();
+
 		AdvertisePositionChanges();
 	}
 
@@ -329,6 +362,8 @@
 		m_RotY = y;
 		m_InterpolatedRotY = m_RotY.ToFloat();
 
+		recalculateXZRotation = true;
+
 		AdvertisePositionChanges();
 	}
 
@@ -370,8 +405,43 @@
 		rotY = m_InterpolatedRotY;
 	}
 
+
+	virtual void UpdateXZRotation()
+	{
+
+		if (m_AnchorType == UPRIGHT)
+			// change nothing if anchor is upright 
+			return;
+		
+		CmpPtr<ICmpTerrain> cmpTerrain(GetSimContext(), SYSTEM_ENTITY);
+		if (!cmpTerrain)
+				return;
+
+		// TODO average normal (average all the tiles?) for big units or for buildings
+		CFixedVector3D normal = cmpTerrain->CalcNormal(m_X, m_Z);
+
+		// rotate the normal so the positive x direction is in the direction of the unit
+		CFixedVector2D projected = CFixedVector2D(normal.X, normal.Z);
+		projected = projected.Rotate(-m_RotY);
+
+		normal.X = projected.X;
+		normal.Z = projected.Y;
+
+		if (m_AnchorType == PITCH || m_AnchorType == PITCH_ROLL)
+			// project and calculate the angle
+			m_RotX = -atan2_approx(normal.Z, normal.Y);
+
+		if (m_AnchorType == ROLL || m_AnchorType == PITCH_ROLL)
+			// project and calculate the angle 
+			m_RotZ = atan2_approx(normal.X,normal.Y);
+		
+		return;
+	}
+
 	virtual CMatrix3D GetInterpolatedTransform(float frameOffset, bool forceFloating)
 	{
+
+
 		if (!m_InWorld)
 		{
 			LOGERROR(L"CCmpPosition::GetInterpolatedTransform called on entity when IsInWorld is false");
@@ -400,11 +470,14 @@
 
 		float y = baseY + m_YOffset.ToFloat();
 
-		// TODO: do something with m_AnchorType
 
-        CMatrix3D m;
-		m.SetXRotation(m_RotX.ToFloat());
-		m.RotateZ(m_RotZ.ToFloat());
+		CMatrix3D m;
+		
+		// linear interpolation is good enough (for RotX/Z). 
+		// As you always stay close to zero angle.	
+		m.SetXRotation(Interpolate(m_LastRotX.ToFloat(), m_RotX.ToFloat(), frameOffset));
+		m.RotateZ(Interpolate(m_LastRotZ.ToFloat(), m_RotZ.ToFloat(), frameOffset));
+	
 		m.RotateY(rotY + (float)M_PI);
 		m.Translate(CVector3D(x, y, z));
 		
@@ -417,35 +490,50 @@
 		{
 		case MT_Interpolate:
 		{
+
 			const CMessageInterpolate& msgData = static_cast<const CMessageInterpolate&> (msg);
 
 			float rotY = m_RotY.ToFloat();
-			float delta = rotY - m_InterpolatedRotY;
-			// Wrap delta to -M_PI..M_PI
-			delta = fmodf(delta + (float)M_PI, 2*(float)M_PI); // range -2PI..2PI
-			if (delta < 0) delta += 2*(float)M_PI; // range 0..2PI
-			delta -= (float)M_PI; // range -M_PI..M_PI
-			// Clamp to max rate
-			float deltaClamped = clamp(delta, -m_RotYSpeed*msgData.deltaSimTime, +m_RotYSpeed*msgData.deltaSimTime);
-			// Calculate new orientation, in a peculiar way in order to make sure the
-			// result gets close to m_orientation (rather than being n*2*M_PI out)
-			m_InterpolatedRotY = rotY + deltaClamped - delta;
+			if (rotY != m_InterpolatedRotY)
+			{
+				float delta = rotY - m_InterpolatedRotY;
+				// Wrap delta to -M_PI..M_PI
+				delta = fmodf(delta + (float)M_PI, 2*(float)M_PI); // range -2PI..2PI
+				if (delta < 0) delta += 2*(float)M_PI; // range 0..2PI
+				delta -= (float)M_PI; // range -M_PI..M_PI
+				// Clamp to max rate
+				float deltaClamped = clamp(delta, -m_RotYSpeed*msgData.deltaSimTime, +m_RotYSpeed*msgData.deltaSimTime);
+				// Calculate new orientation, in a peculiar way in order to make sure the
+				// result gets close to m_orientation (rather than being n*2*M_PI out)
+				m_InterpolatedRotY = rotY + deltaClamped - delta;
+				recalculateXZRotation = true;
+			}
 
+			
+
 			break;
 		}
 		case MT_TurnStart:
-		{
 			// Store the positions from the turn before
 			m_PrevX = m_LastX;
 			m_PrevZ = m_LastZ;
 			
 			m_LastX = m_X;
 			m_LastZ = m_Z;
+				
+			m_LastRotX = m_RotX;
+			m_LastRotZ = m_RotZ;
 
+			if (recalculateXZRotation)
+			{
+				UpdateXZRotation();
+
+				recalculateXZRotation = false;
+			}
+
 			break;
-		}
-		}
 	}
+};
 
 private:
 	void AdvertisePositionChanges()
