Index: data/core/units/boats/Pirate_Galleon.cfg
===================================================================
--- data/core/units/boats/Pirate_Galleon.cfg	(revision 56322)
+++ data/core/units/boats/Pirate_Galleon.cfg	(working copy)
@@ -29,9 +29,9 @@
         [filter_attack]
             name=ballista
         [/filter_attack]
+        missile_start_time=-50
         [missile_frame]
-            begin=-50
-            end=0
+            duration=50
             image="projectiles/bullet.png"
             image_diagonal="projectiles/bullet.png"
         [/missile_frame]
Index: data/core/units/boats/Transport_Galleon.cfg
===================================================================
--- data/core/units/boats/Transport_Galleon.cfg	(revision 56322)
+++ data/core/units/boats/Transport_Galleon.cfg	(working copy)
@@ -30,9 +30,9 @@
         [filter_attack]
             name=ballista
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/bullet.png"
             image_diagonal="projectiles/bullet.png"
         [/missile_frame]
Index: data/core/units/monsters/Mudcrawler.cfg
===================================================================
--- data/core/units/monsters/Mudcrawler.cfg	(revision 56322)
+++ data/core/units/monsters/Mudcrawler.cfg	(working copy)
@@ -35,39 +35,19 @@
     {DEFENSE_ANIM "units/monsters/mudcrawler-defend-2.png" "units/monsters/mudcrawler-defend-1.png" squishy-hit.wav }
     [recruit_anim]
         [frame]
-            duration=70
-            image="units/monsters/mudcrawler-die-3.png"
+            image="units/monsters/mudcrawler-die-[3~1].png:70"
         [/frame]
         [frame]
-            duration=70
-            image="units/monsters/mudcrawler-die-2.png"
+            image="units/monsters/mudcrawler-defend-1.png:70"
         [/frame]
-        [frame]
-            duration=70
-            image="units/monsters/mudcrawler-die-1.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/monsters/mudcrawler-defend-1.png"
-        [/frame]
     [/recruit_anim]
     [death]
         [frame]
-            duration=70
-            image="units/monsters/mudcrawler-defend-1.png"
+            image="units/monsters/mudcrawler-defend-1.png:70"
         [/frame]
         [frame]
-            duration=70
-            image="units/monsters/mudcrawler-die-1.png"
+            image="units/monsters/mudcrawler-die-[1~3].png:70"
         [/frame]
-        [frame]
-            duration=70
-            image="units/monsters/mudcrawler-die-2.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/monsters/mudcrawler-die-3.png"
-        [/frame]
     [/death]
     [attack]
         name=mud glob
@@ -82,42 +62,27 @@
         [filter_attack]
             name=mud glob
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/mud-glob.png"
             image_diagonal="projectiles/mud-glob.png"
         [/missile_frame]
         start_time=-400
         [frame]
-            duration=100
-            image="units/monsters/mudcrawler-attack-1.png"
+            image="units/monsters/mudcrawler-attack-[1~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/mudcrawler-attack-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/mudcrawler-attack-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/mudcrawler-attack-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/monsters/mudcrawler-attack-5.png"
+                image="units/monsters/mudcrawler-attack-5.png:100"
                 sound=squishy-strike.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/monsters/mudcrawler-attack-5.png"
+                image="units/monsters/mudcrawler-attack-5.png:100"
                 sound=squishy-miss.wav
             [/frame]
         [/else]
Index: data/core/units/monsters/Wolf.cfg
===================================================================
--- data/core/units/monsters/Wolf.cfg	(revision 56322)
+++ data/core/units/monsters/Wolf.cfg	(working copy)
@@ -34,10 +34,9 @@
     description=_ "Wolves are aggressive animals that hunt in packs. Although weak individually, a wolf pack can kill even the strongest man in minutes."
     die_sound={SOUND_LIST:WOLF_DIE}
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/monsters/wolf-moving.png"
+            image="units/monsters/wolf-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/monsters/wolf-defend-2.png" "units/monsters/wolf-defend-1.png" {SOUND_LIST:WOLF_HIT} }
@@ -58,43 +57,32 @@
             name=fangs
         [/filter_attack]
         offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+        start_time=-350
         [frame]
-            begin=-350
-            end=-250
-            image="units/monsters/wolf.png"
+            image="units/monsters/wolf.png:100"
             sound={SOUND_LIST:WOLF_GROWL}
         [/frame]
         [frame]
-            begin=-250
-            end=-100
-            image="units/monsters/wolf-attack.png"
+            image="units/monsters/wolf-attack.png:150"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/monsters/wolf-attack.png"
+                image="units/monsters/wolf-attack.png:50"
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/monsters/wolf-attack.png"
+                image="units/monsters/wolf-attack.png:50"
                 sound=bite.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=200
-            image="units/monsters/wolf-moving.png"
+            image="units/monsters/wolf-moving.png:250"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/monsters/wolf.png"
+            image="units/monsters/wolf.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Sea_Serpent.cfg
===================================================================
--- data/core/units/monsters/Sea_Serpent.cfg	(revision 56322)
+++ data/core/units/monsters/Sea_Serpent.cfg	(working copy)
@@ -35,33 +35,26 @@
         [filter_attack]
             name=fangs
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-50
-            image="units/monsters/seaserpent.png"
+            image="units/monsters/seaserpent.png:150"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-50
-                end=100
-                image="units/monsters/seaserpent.png"
+                image="units/monsters/seaserpent.png:150"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-50
-                end=100
-                image="units/monsters/seaserpent.png"
+                image="units/monsters/seaserpent.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/monsters/seaserpent.png"
+            image="units/monsters/seaserpent.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Cuttle_Fish.cfg
===================================================================
--- data/core/units/monsters/Cuttle_Fish.cfg	(revision 56322)
+++ data/core/units/monsters/Cuttle_Fish.cfg	(working copy)
@@ -20,29 +20,8 @@
     {DEFENSE_ANIM "units/monsters/cuttlefish-defend-2.png" "units/monsters/cuttlefish-defend-1.png" squishy-hit.wav }
     [death]
         [frame]
-            duration=100
-            image="units/monsters/cuttlefish-die-1.png"
+            image="units/monsters/cuttlefish-die-[1~6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-die-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-die-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-die-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-die-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-die-6.png"
-        [/frame]
     [/death]
     [attack]
         name=tentacle
@@ -71,47 +50,31 @@
             name=ink
         [/filter_attack]
         start_time=-500
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/ink.png"
             image_diagonal="projectiles/ink.png"
         [/missile_frame]
         [frame]
-            duration=100
-            image="units/monsters/cuttlefish-ranged-1.png"
+            image="units/monsters/cuttlefish-ranged-[1~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-ranged-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-ranged-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-ranged-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/monsters/cuttlefish-ranged-5.png"
+                image="units/monsters/cuttlefish-ranged-5.png:100"
                 sound=squishy-strike.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/monsters/cuttlefish-ranged-5.png"
+                image="units/monsters/cuttlefish-ranged-5.png:100"
                 sound=squishy-miss.wav
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/monsters/cuttlefish-ranged-6.png"
+            image="units/monsters/cuttlefish-ranged-6.png:100"
         [/frame]
         {SOUND:POISON}
     [/attack_anim]
@@ -121,40 +84,24 @@
         [/filter_attack]
         start_time=-300
         [frame]
-            duration=100
-            image="units/monsters/cuttlefish-melee-1.png"
+            image="units/monsters/cuttlefish-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/monsters/cuttlefish-melee-4.png"
+                image="units/monsters/cuttlefish-melee-4.png:100"
                 sound=bite.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/monsters/cuttlefish-melee-4.png"
+                image="units/monsters/cuttlefish-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/monsters/cuttlefish-melee-5.png"
+            image="units/monsters/cuttlefish-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/cuttlefish-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Yeti.cfg
===================================================================
--- data/core/units/monsters/Yeti.cfg	(revision 56322)
+++ data/core/units/monsters/Yeti.cfg	(working copy)
@@ -45,38 +45,26 @@
             name=fist
         [/filter_attack]
         offset=0.0~-0.1,-0.1~0.4,0.4~0.5,0.5~0.4,0.4~0.2,0.2~0.0
+        start_time=-300
         [frame]
-            begin=-300
-            end=-200
-            image="units/monsters/yeti-attack1.png"
+            image="units/monsters/yeti-attack[1,2].png:100"
         [/frame]
-        [frame]
-            begin=-200
-            end=-100
-            image="units/monsters/yeti-attack2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=150
-                image="units/monsters/yeti-attack3.png"
+                image="units/monsters/yeti-attack3.png:250"
                 sound=fist.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=150
-                image="units/monsters/yeti-attack3.png"
+                image="units/monsters/yeti-attack3.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=250
-            image="units/monsters/yeti.png"
+            image="units/monsters/yeti.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Giant_Scorpion.cfg
===================================================================
--- data/core/units/monsters/Giant_Scorpion.cfg	(revision 56322)
+++ data/core/units/monsters/Giant_Scorpion.cfg	(working copy)
@@ -43,82 +43,62 @@
         [filter_attack]
             name=pincers
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/monsters/scorpion.png"
+            image="units/monsters/scorpion.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=50
-                image="units/monsters/scorpion-pincers-attack.png"
+                image="units/monsters/scorpion-pincers-attack.png:200"
                 sound=pincers.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=50
-                image="units/monsters/scorpion-pincers-attack.png"
+                image="units/monsters/scorpion-pincers-attack.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=100
-            image="units/monsters/scorpion.png"
+            image="units/monsters/scorpion.png:50"
         [/frame]
         [frame]
-            begin=100
-            end=200
-            image="units/monsters/scorpion-defend.png"
+            image="units/monsters/scorpion-defend.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sting
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-175
-            image="units/monsters/scorpion.png"
+            image="units/monsters/scorpion.png:50"
         [/frame]
         [frame]
-            begin=-175
-            end=-100
-            image="units/monsters/scorpion-defend.png"
+            image="units/monsters/scorpion-defend.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/monsters/scorpion-sting-attack.png"
+                image="units/monsters/scorpion-sting-attack.png:50"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/monsters/scorpion-sting-attack.png"
+                image="units/monsters/scorpion-sting-attack.png:50"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=100
-            image="units/monsters/scorpion-sting-attack.png"
+            image="units/monsters/scorpion-sting-attack.png:150"
         [/frame]
         {SOUND:POISON}
         [frame]
-            begin=100
-            end=200
-            image="units/monsters/scorpion.png"
+            image="units/monsters/scorpion.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Water_Serpent.cfg
===================================================================
--- data/core/units/monsters/Water_Serpent.cfg	(revision 56322)
+++ data/core/units/monsters/Water_Serpent.cfg	(working copy)
@@ -9,16 +9,14 @@
         start_time=0
         direction=s,sw,se
         [frame]
-            image="units/monsters/water-serpent.png"
-            duration=150
+            image="units/monsters/water-serpent.png:150"
         [/frame]
     [/standing_anim]
     [standing_anim]
         start_time=0
         direction=n,nw,ne
         [frame]
-            image="units/monsters/water-serpent-n.png"
-            duration=150
+            image="units/monsters/water-serpent-n.png:150"
         [/frame]
     [/standing_anim]
     ellipse="misc/ellipse"
@@ -58,49 +56,26 @@
 
         direction=se,sw
         offset=0
-
+        start_time=-700
         [frame]
-            begin=-700
-            end=-550
-            image=units/monsters/water-serpent-attack-se-1.png
+            image=units/monsters/water-serpent-attack-se-[1~4].png:[150*3,200]
         [/frame]
-        [frame]
-            begin=-550
-            end=-400
-            image=units/monsters/water-serpent-attack-se-2.png
-        [/frame]
-        [frame]
-            begin=-400
-            end=-250
-            image=units/monsters/water-serpent-attack-se-3.png
-        [/frame]
-        [frame]
-            begin=-250
-            end=-50
-            image=units/monsters/water-serpent-attack-se-4.png
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-50
-                end=100
-                image=units/monsters/water-serpent-attack-se-5.png
+                image=units/monsters/water-serpent-attack-se-5.png:100
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-50
-                end=50
-                image=units/monsters/water-serpent-attack-se-5.png
+                image=units/monsters/water-serpent-attack-se-5.png:100
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=200
-            image=units/monsters/water-serpent-attack-se-6.png
+            image=units/monsters/water-serpent-attack-se-6.png:150
         [/frame]
         {SOUND:POISON}
     [/attack_anim]
@@ -112,49 +87,26 @@
 
         direction=s
         offset=0
-
+        start_time=-700
         [frame]
-            begin=-700
-            end=-550
-            image=units/monsters/water-serpent-attack-se-1.png
+            image=units/monsters/water-serpent-attack-se-[1~4].png:[150*3,200]
         [/frame]
-        [frame]
-            begin=-550
-            end=-400
-            image=units/monsters/water-serpent-attack-se-2.png
-        [/frame]
-        [frame]
-            begin=-400
-            end=-250
-            image=units/monsters/water-serpent-attack-se-3.png
-        [/frame]
-        [frame]
-            begin=-250
-            end=-50
-            image=units/monsters/water-serpent-attack-se-4.png
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-50
-                end=100
-                image=units/monsters/water-serpent-attack-s-5.png
+                image=units/monsters/water-serpent-attack-s-5.png:100
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-50
-                end=50
-                image=units/monsters/water-serpent-attack-s-5.png
+                image=units/monsters/water-serpent-attack-s-5.png:100
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=200
-            image=units/monsters/water-serpent-attack-s-6.png
+            image=units/monsters/water-serpent-attack-s-6.png:150
         [/frame]
         {SOUND:POISON}
     [/attack_anim]
@@ -165,49 +117,26 @@
 
         direction=ne,nw
         offset=0
-
+        start_time=-700
         [frame]
-            begin=-700
-            end=-550
-            image=units/monsters/water-serpent-attack-ne-1.png
+            image=units/monsters/water-serpent-attack-ne-[1~4].png:[150*3,200]
         [/frame]
-        [frame]
-            begin=-550
-            end=-400
-            image=units/monsters/water-serpent-attack-ne-2.png
-        [/frame]
-        [frame]
-            begin=-400
-            end=-250
-            image=units/monsters/water-serpent-attack-ne-3.png
-        [/frame]
-        [frame]
-            begin=-250
-            end=-50
-            image=units/monsters/water-serpent-attack-ne-4.png
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-50
-                end=100
-                image=units/monsters/water-serpent-attack-ne-5.png
+                image=units/monsters/water-serpent-attack-ne-5.png:100
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-50
-                end=50
-                image=units/monsters/water-serpent-attack-ne-5.png
+                image=units/monsters/water-serpent-attack-ne-5.png:100
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=200
-            image=units/monsters/water-serpent-attack-ne-6.png
+            image=units/monsters/water-serpent-attack-ne-6.png:150
         [/frame]
         {SOUND:POISON}
     [/attack_anim]
@@ -218,49 +147,26 @@
 
         direction=n
         offset=0
-
+        start_time=-700
         [frame]
-            begin=-700
-            end=-550
-            image=units/monsters/water-serpent-attack-ne-1.png
+            image=units/monsters/water-serpent-attack-ne-[1~4].png:[150*3,200]
         [/frame]
-        [frame]
-            begin=-550
-            end=-400
-            image=units/monsters/water-serpent-attack-ne-2.png
-        [/frame]
-        [frame]
-            begin=-400
-            end=-250
-            image=units/monsters/water-serpent-attack-ne-3.png
-        [/frame]
-        [frame]
-            begin=-250
-            end=-50
-            image=units/monsters/water-serpent-attack-ne-4.png
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-50
-                end=100
-                image=units/monsters/water-serpent-attack-n-5.png
+                image=units/monsters/water-serpent-attack-n-5.png:100
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-50
-                end=50
-                image=units/monsters/water-serpent-attack-n-5.png
+                image=units/monsters/water-serpent-attack-n-5.png:100
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=200
-            image=units/monsters/water-serpent-attack-n-6.png
+            image=units/monsters/water-serpent-attack-n-6.png:150
         [/frame]
         {SOUND:POISON}
     [/attack_anim]
Index: data/core/units/monsters/Giant_Mudcrawler.cfg
===================================================================
--- data/core/units/monsters/Giant_Mudcrawler.cfg	(revision 56322)
+++ data/core/units/monsters/Giant_Mudcrawler.cfg	(working copy)
@@ -34,26 +34,10 @@
     [/portrait]
     {DEFENSE_ANIM "units/monsters/giant-mudcrawler-defend.png" "units/monsters/giant-mudcrawler.png" squishy-hit.wav }
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/monsters/giant-mudcrawler-death1.png"
+            image="units/monsters/giant-mudcrawler-death[1~4].png:150"
         [/frame]
-        [frame]
-            begin=150
-            end=300
-            image="units/monsters/giant-mudcrawler-death2.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=450
-            image="units/monsters/giant-mudcrawler-death3.png"
-        [/frame]
-        [frame]
-            begin=450
-            end=600
-            image="units/monsters/giant-mudcrawler-death4.png"
-        [/frame]
     [/death]
     [attack]
         name=fist
@@ -77,27 +61,24 @@
         [filter_attack]
             name=mud glob
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/mud-glob.png"
             image_diagonal="projectiles/mud-glob.png"
         [/missile_frame]
+        start_time=-100
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/monsters/giant-mudcrawler-attack.png"
+                image="units/monsters/giant-mudcrawler-attack.png:200"
                 sound=squishy-strike.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/monsters/giant-mudcrawler-attack.png"
+                image="units/monsters/giant-mudcrawler-attack.png:200"
                 sound=squishy-miss.wav
             [/frame]
         [/else]
@@ -106,33 +87,23 @@
         [filter_attack]
             name=fist
         [/filter_attack]
+        start_time=-200
         [if]
             hits=yes
             [frame]
-                begin=-200
-                end=-100
-                image="units/monsters/giant-mudcrawler-attack1.png"
+                image="units/monsters/giant-mudcrawler-attack1.png:100"
                 sound=squishy-strike.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-200
-                end=-100
-                image="units/monsters/giant-mudcrawler-attack1.png"
+                image="units/monsters/giant-mudcrawler-attack1.png:100"
                 sound=squishy-miss.wav
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=100
-            image="units/monsters/giant-mudcrawler-attack2.png"
+            image="units/monsters/giant-mudcrawler-attack2.png:300"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/monsters/giant-mudcrawler-attack2.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Wolf_Great.cfg
===================================================================
--- data/core/units/monsters/Wolf_Great.cfg	(revision 56322)
+++ data/core/units/monsters/Wolf_Great.cfg	(working copy)
@@ -24,10 +24,9 @@
     description=_ "Wolves are aggressive animals that hunt in packs. Although weak individually, a wolf pack can kill even the strongest man in minutes."
     die_sound={SOUND_LIST:WOLF_DIE}
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/monsters/wolf-great-moving.png"
+            image="units/monsters/wolf-great-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/monsters/wolf-great-defend-2.png" "units/monsters/wolf-great-defend-1.png" {SOUND_LIST:WOLF_HIT} }
@@ -48,43 +47,32 @@
             name=fangs
         [/filter_attack]
         offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+        start_time=-350
         [frame]
-            begin=-350
-            end=-250
-            image="units/monsters/wolf-great.png"
+            image="units/monsters/wolf-great.png:100"
             sound={SOUND_LIST:WOLF_GROWL}
         [/frame]
         [frame]
-            begin=-250
-            end=-100
-            image="units/monsters/wolf-great-attack.png"
+            image="units/monsters/wolf-great-attack.png:150"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/monsters/wolf-great-attack.png"
+                image="units/monsters/wolf-great-attack.png:50"
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/monsters/wolf-great-attack.png"
+                image="units/monsters/wolf-great-attack.png:50"
                 sound=bite.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=200
-            image="units/monsters/wolf-great-moving.png"
+            image="units/monsters/wolf-great-moving.png:250"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/monsters/wolf-great.png"
+            image="units/monsters/wolf-great.png:50"
         [/frame]
     [/attack_anim]
 
@@ -94,10 +82,9 @@
         image="units/monsters/wolf-great+red.png"
 
         [movement_anim]
+            start_time=0
             [frame]
-                begin=0
-                end=150
-                image="units/monsters/wolf-great+red-moving.png"
+                image="units/monsters/wolf-great+red-moving.png:150"
             [/frame]
         [/movement_anim]
 
@@ -108,43 +95,32 @@
                 name=fangs
             [/filter_attack]
             offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+            start_time=-350
             [frame]
-                begin=-350
-                end=-250
-                image="units/monsters/wolf-great+red.png"
+                image="units/monsters/wolf-great+red.png:100"
                 sound={SOUND_LIST:WOLF_GROWL}
             [/frame]
             [frame]
-                begin=-250
-                end=-100
-                image="units/monsters/wolf-great+red-attack.png"
+                image="units/monsters/wolf-great+red-attack.png:150"
             [/frame]
             [if]
                 hits=no
                 [frame]
-                    begin=-100
-                    end=-50
-                    image="units/monsters/wolf-great+red-attack.png"
+                    image="units/monsters/wolf-great+red-attack.png:50"
                 [/frame]
             [/if]
             [else]
                 hits=yes
                 [frame]
-                    begin=-100
-                    end=-50
-                    image="units/monsters/wolf-great+red-attack.png"
+                    image="units/monsters/wolf-great+red-attack.png:50"
                     sound=bite.ogg
                 [/frame]
             [/else]
             [frame]
-                begin=-50
-                end=200
-                image="units/monsters/wolf-great+red-moving.png"
+                image="units/monsters/wolf-great+red-moving.png:250"
             [/frame]
             [frame]
-                begin=200
-                end=250
-                image="units/monsters/wolf-great+red.png"
+                image="units/monsters/wolf-great+red.png:50"
             [/frame]
         [/attack_anim]
     [/variation]
Index: data/core/units/monsters/Skeletal_Dragon.cfg
===================================================================
--- data/core/units/monsters/Skeletal_Dragon.cfg	(revision 56322)
+++ data/core/units/monsters/Skeletal_Dragon.cfg	(working copy)
@@ -50,59 +50,47 @@
         [filter_attack]
             name=claws
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/monsters/skeletal-dragon-attack-claws1.png"
+            image="units/monsters/skeletal-dragon-attack-claws1.png:50"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-150
-                end=-50
-                image="units/monsters/skeletal-dragon-attack-claws2.png"
+                image="units/monsters/skeletal-dragon-attack-claws2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-150
-                end=-50
-                image="units/monsters/skeletal-dragon-attack-claws2.png"
+                image="units/monsters/skeletal-dragon-attack-claws2.png:100"
                 sound=claws.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=100
-            image="units/monsters/skeletal-dragon-attack-claws3.png"
+            image="units/monsters/skeletal-dragon-attack-claws3.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=jaw
         [/filter_attack]
+        start_time=-150
         [frame]
-            begin=-150
-            end=-50
-            image="units/monsters/skeletal-dragon-attack-jaw1.png"
+            image="units/monsters/skeletal-dragon-attack-jaw1.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-50
-                end=100
-                image="units/monsters/skeletal-dragon-attack-jaw2.png"
+                image="units/monsters/skeletal-dragon-attack-jaw2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-50
-                end=100
-                image="units/monsters/skeletal-dragon-attack-jaw2.png"
+                image="units/monsters/skeletal-dragon-attack-jaw2.png:150"
                 sound=bite.ogg
             [/frame]
         [/else]
Index: data/core/units/monsters/Tentacle.cfg
===================================================================
--- data/core/units/monsters/Tentacle.cfg	(revision 56322)
+++ data/core/units/monsters/Tentacle.cfg	(working copy)
@@ -27,36 +27,10 @@
         {ABILITY_REGENERATES}
     [/abilities]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/monsters/deep-tentacle-die-1.png"
+            image="units/monsters/deep-tentacle-die-[1~6].png:150"
         [/frame]
-        [frame]
-            begin=150
-            end=300
-            image="units/monsters/deep-tentacle-die-2.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=450
-            image="units/monsters/deep-tentacle-die-3.png"
-        [/frame]
-        [frame]
-            begin=450
-            end=600
-            image="units/monsters/deep-tentacle-die-4.png"
-        [/frame]
-        [frame]
-            begin=600
-            end=750
-            image="units/monsters/deep-tentacle-die-5.png"
-        [/frame]
-        [frame]
-            begin=750
-            end=900
-            image="units/monsters/deep-tentacle-die-6.png"
-        [/frame]
     [/death]
     [attack]
         name=tentacle
@@ -71,43 +45,32 @@
         [filter_attack]
             name=tentacle
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-150
-            image="units/monsters/deep-tentacle-defend.png"
+            image="units/monsters/deep-tentacle-defend.png:75"
         [/frame]
         [frame]
-            begin=-150
-            end=-75
-            image="units/monsters/deep-tentacle-die-4.png"
+            image="units/monsters/deep-tentacle-die-4.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/monsters/deep-tentacle-attack.png"
+                image="units/monsters/deep-tentacle-attack.png:150"
                 sound=squishy-hit.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/monsters/deep-tentacle-attack.png"
+                image="units/monsters/deep-tentacle-attack.png:150"
                 sound=squishy-miss.wav
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=150
-            image="units/monsters/deep-tentacle-die-4.png"
+            image="units/monsters/deep-tentacle-die-4.png:75"
         [/frame]
         [frame]
-            begin=150
-            end=200
-            image="units/monsters/deep-tentacle.png"
+            image="units/monsters/deep-tentacle.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Giant_Spider.cfg
===================================================================
--- data/core/units/monsters/Giant_Spider.cfg	(revision 56322)
+++ data/core/units/monsters/Giant_Spider.cfg	(working copy)
@@ -48,64 +48,32 @@
         [filter_attack]
             name=web
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/web.png"
             image_diagonal="projectiles/web.png"
         [/missile_frame]
         [frame]
-            duration=75
-            image="units/monsters/spider-ranged-1.png"
+            image="units/monsters/spider-ranged-[1~4].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/monsters/spider-ranged-2.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/monsters/spider-ranged-3.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/monsters/spider-ranged-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/monsters/spider-ranged-5.png"
+                image="units/monsters/spider-ranged-5.png:75"
                 sound=net.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/monsters/spider-ranged-5.png"
+                image="units/monsters/spider-ranged-5.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=75
-            image="units/monsters/spider-ranged-6.png"
+            image="units/monsters/spider-ranged-[6,7,3~1].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/monsters/spider-ranged-7.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/monsters/spider-ranged-3.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/monsters/spider-ranged-2.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/monsters/spider-ranged-1.png"
-        [/frame]
         {SOUND:SLOW}
     [/attack_anim]
     [attack_anim]
@@ -114,69 +82,28 @@
             name=fangs
         [/filter_attack]
         [frame]
-            duration=50
-            image="units/monsters/spider-melee-1.png"
+            image="units/monsters/spider-melee-[1~7].png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-3.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-4.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-5.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-6.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-7.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=50
-                image="units/monsters/spider-melee-8.png"
+                image="units/monsters/spider-melee-8.png:50"
                 sound=bite.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=50
-                image="units/monsters/spider-melee-8.png"
+                image="units/monsters/spider-melee-8.png:50"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/monsters/spider-melee-9.png"
+            image="units/monsters/spider-melee-9.png:50"
         [/frame]
         {SOUND:POISON}
         [frame]
-            duration=50
-            image="units/monsters/spider-melee-10.png"
+            image="units/monsters/spider-melee-[10~13].png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-11.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-12.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/monsters/spider-melee-13.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Giant_Rat.cfg
===================================================================
--- data/core/units/monsters/Giant_Rat.cfg	(revision 56322)
+++ data/core/units/monsters/Giant_Rat.cfg	(working copy)
@@ -20,18 +20,10 @@
     {DEFENSE_ANIM "units/monsters/giant-rat-defend-2.png" "units/monsters/giant-rat-defend-1.png" {SOUND_LIST:BAT_HIT} }
     die_sound=bat-flapping.wav
     [death]
+        start_time=0
         [frame]
-            duration=100
-            image="units/monsters/giant-rat-die-1.png"
+            image="units/monsters/giant-rat-die-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/giant-rat-die-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/giant-rat-die-3.png"
-        [/frame]
     [/death]
     [attack]
         name=bite
@@ -48,43 +40,23 @@
         [/filter_attack]
         start_time=-500
         [frame]
-            duration=100
-            image="units/monsters/giant-rat-attack-1.png"
+            image="units/monsters/giant-rat-attack-[1~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/giant-rat-attack-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/giant-rat-attack-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/giant-rat-attack-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/monsters/giant-rat-attack-5.png"
+                image="units/monsters/giant-rat-attack-5.png:100"
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/monsters/giant-rat-attack-5.png"
+                image="units/monsters/giant-rat-attack-5.png:100"
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/monsters/giant-rat-attack-6.png"
+            image="units/monsters/giant-rat-attack-[6,7].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/giant-rat-attack-7.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Wolf_Dire.cfg
===================================================================
--- data/core/units/monsters/Wolf_Dire.cfg	(revision 56322)
+++ data/core/units/monsters/Wolf_Dire.cfg	(working copy)
@@ -24,10 +24,9 @@
     description=_ "Wolves are aggressive animals that hunt in packs. Although weak individually, a wolf pack can kill even the strongest man in minutes."
     die_sound={SOUND_LIST:WOLF_DIE}
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/monsters/direwolf-moving.png"
+            image="units/monsters/direwolf-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/monsters/direwolf-defend-2.png" "units/monsters/direwolf-defend-1.png" {SOUND_LIST:WOLF_HIT} }
@@ -47,76 +46,40 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/monsters/direwolf-idle-1.png"
+            image="units/monsters/direwolf-idle-[1~4,3~1].png:[100*4,1000,100*2]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/direwolf-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/direwolf-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/direwolf-idle-4.png"
-        [/frame]
-        [frame]
-            duration=1000
-            image="units/monsters/direwolf-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/direwolf-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/monsters/direwolf-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=fangs
         [/filter_attack]
         offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+        start_time=-350
         [frame]
-            begin=-350
-            end=-250
-            image="units/monsters/direwolf.png"
+            image="units/monsters/direwolf.png:100"
             sound={SOUND_LIST:WOLF_GROWL}
         [/frame]
         [frame]
-            begin=-250
-            end=-100
-            image="units/monsters/direwolf-attack.png"
+            image="units/monsters/direwolf-attack.png:150"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/monsters/direwolf-attack.png"
+                image="units/monsters/direwolf-attack.png:50"
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/monsters/direwolf-attack.png"
+                image="units/monsters/direwolf-attack.png:50"
                 sound=bite.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=200
-            image="units/monsters/direwolf-moving.png"
+            image="units/monsters/direwolf-moving.png:250"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/monsters/direwolf.png"
+            image="units/monsters/direwolf.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/monsters/Fire_Guardian.cfg
===================================================================
--- data/core/units/monsters/Fire_Guardian.cfg	(revision 56322)
+++ data/core/units/monsters/Fire_Guardian.cfg	(working copy)
@@ -42,75 +42,40 @@
         number=2
     [/attack]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=50
-            image="units/monsters/fireghost.png"
+            image="units/monsters/fireghost.png:50"
         [/frame]
         [frame]
-            begin=50
-            end=150
-            image="units/monsters/fireghost-death1.png"
+            image="units/monsters/fireghost-death[1~6].png:100"
         [/frame]
-        [frame]
-            begin=150
-            end=250
-            image="units/monsters/fireghost-death2.png"
-        [/frame]
-        [frame]
-            begin=250
-            end=350
-            image="units/monsters/fireghost-death3.png"
-        [/frame]
-        [frame]
-            begin=350
-            end=450
-            image="units/monsters/fireghost-death4.png"
-        [/frame]
-        [frame]
-            begin=450
-            end=550
-            image="units/monsters/fireghost-death5.png"
-        [/frame]
-        [frame]
-            begin=550
-            end=650
-            image="units/monsters/fireghost-death6.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             name=fire claws
         [/filter_attack]
         offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+        start_time=-350
         [frame]
-            begin=-350
-            end=-100
-            image="units/monsters/fireghost-attack1.png"
+            image="units/monsters/fireghost-attack1.png:250"
             sound=fire.wav
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=150
-                image="units/monsters/fireghost-attack2.png"
+                image="units/monsters/fireghost-attack2.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=150
-                image="units/monsters/fireghost-attack2.png"
+                image="units/monsters/fireghost-attack2.png:250"
                 sound=claws.ogg
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=250
-            image="units/monsters/fireghost.png"
+            image="units/monsters/fireghost.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -118,38 +83,29 @@
             name=fire breath
         [/filter_attack]
         {MISSILE_FRAME_FIRE_BREATH 11,-34 11,15 24,-22 26,10}
+        start_time=-500
         [frame]
-            begin=-500
-            end=-400
-            image="units/monsters/fireghost.png"
+            image="units/monsters/fireghost.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-400
-                end=-350
-                image="units/monsters/fireghost-ranged2.png"
+                image="units/monsters/fireghost-ranged2.png:50"
                 sound=flame-big.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-400
-                end=-350
-                image="units/monsters/fireghost-ranged2.png"
+                image="units/monsters/fireghost-ranged2.png:50"
                 sound=flame-big-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-350
-            end=-150
-            image="units/monsters/fireghost-attack1.png"
+            image="units/monsters/fireghost-attack1.png:200"
         [/frame]
         [frame]
-            begin=-150
-            end=0
-            image="units/monsters/fireghost.png"
+            image="units/monsters/fireghost.png:150"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Guardsman.cfg
===================================================================
--- data/core/units/dwarves/Guardsman.cfg	(revision 56322)
+++ data/core/units/dwarves/Guardsman.cfg	(working copy)
@@ -59,147 +59,61 @@
     [standing_anim]
         start_time=0
         [frame]
-            duration=400
-            image="units/dwarves/guard.png"
+            image="units/dwarves/guard.png:400"
         [/frame]
         [frame]
-            duration=150
-            image="units/dwarves/guard-bob-1.png"
+            image="units/dwarves/guard-bob-[1~3,2,1].png:[150*2,300,100*2]"
         [/frame]
         [frame]
-            duration=150
-            image="units/dwarves/guard-bob-2.png"
+            image="units/dwarves/guard.png:400"
         [/frame]
         [frame]
-            duration=300
-            image="units/dwarves/guard-bob-3.png"
+            image="units/dwarves/guard-bob-[1~3,2,1].png:[150*2,300,100*2]"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/guard-bob-2.png"
+            image="units/dwarves/guard.png:400"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/guard-bob-1.png"
+            image="units/dwarves/guard-bob-[1~5].png:[150*2,300,100*2]"
         [/frame]
-        [frame]
-            duration=400
-            image="units/dwarves/guard.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/guard-bob-1.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/guard-bob-2.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/guard-bob-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-bob-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-bob-1.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/dwarves/guard.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/guard-bob-1.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/guard-bob-2.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/guard-bob-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-bob-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-bob-5.png"
-        [/frame]
     [/standing_anim]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/dwarves/guard-idle-1.png"
+            image="units/dwarves/guard-idle-[1~6,1].png:[100,500,100*2,400,500,100]"
         [/frame]
-        [frame]
-            duration=500
-            image="units/dwarves/guard-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-idle-4.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/dwarves/guard-idle-5.png"
-        [/frame]
-        [frame]
-            duration=500
-            image="units/dwarves/guard-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=javelin
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/dwarves/guard-defend-1.png"
+            image="units/dwarves/guard-defend-1.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=-50
-                image="units/dwarves/guard-attack.png"
+                image="units/dwarves/guard-attack.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=-50
-                image="units/dwarves/guard-attack.png"
+                image="units/dwarves/guard-attack.png:100"
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=0
-            image="units/dwarves/guard.png"
+            image="units/dwarves/guard.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -208,48 +122,24 @@
         [/filter_attack]
         start_time=-300
         [frame]
-            duration=100
-            image="units/dwarves/guard-attack-1.png"
+            image="units/dwarves/guard-attack-[1~3].png:[100*2,50]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-attack-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/guard-attack-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=50
-                image="units/dwarves/guard-attack-4.png"
+                image="units/dwarves/guard-attack-4.png:50"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=50
-                image="units/dwarves/guard-attack-4.png"
+                image="units/dwarves/guard-attack-4.png:50"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/dwarves/guard-attack-5.png"
+            image="units/dwarves/guard-attack-[5~7,1].png:[50,100*3]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-attack-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-attack-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/guard-attack-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Berserker.cfg
===================================================================
--- data/core/units/dwarves/Berserker.cfg	(revision 56322)
+++ data/core/units/dwarves/Berserker.cfg	(working copy)
@@ -54,89 +54,8 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-1.png"
+            image="units/dwarves/berserker-idle-[1~10,9~12,11,13,15,14,16,2,1].png:[100*8,200,100,300,100*2,400,100*2,500,100*4]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-4.png"
-        [/frame]
-        [frame]
-            duration=600
-            image="units/dwarves/berserker-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-8.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/berserker-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-10.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/berserker-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-11.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/dwarves/berserker-idle-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-13.png"
-        [/frame]
-        [frame]
-            duration=500
-            image="units/dwarves/berserker-idle-15.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-14.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-16.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/berserker-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
@@ -160,128 +79,46 @@
 
             value_second=1
             [frame]
-                duration=200
-                image="units/dwarves/berserker.png"
+                image="units/dwarves/berserker.png:200"
             [/frame]
             [frame]
-                duration=400
-                image="units/dwarves/berserker-laugh-1.png"
+                image="units/dwarves/berserker-laugh-1.png:400"
             [/frame]
             [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-2.png"
+                image="units/dwarves/berserker-laugh-2.png:200"
                 sound=dwarf-laugh.wav
             [/frame]
             [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-1.png"
+                image="units/dwarves/berserker-laugh-[1,2,1,2,1,2,1,2,1,2,1,2,1].png:200"
             [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/berserker-laugh-1.png"
-            [/frame]
         [/else]
         [else]
             [frame]
-                duration=1
-                image="units/dwarves/berserker.png"
+                image="units/dwarves/berserker.png:1"
             [/frame]
         [/else]
         [frame]
-            duration=40
-            image="units/dwarves/berserker-attack-1.png"
+            image="units/dwarves/berserker-attack-[1~4].png:[40,50*3]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/berserker-attack-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/berserker-attack-3.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/berserker-attack-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=50
-                image="units/dwarves/berserker-attack-5.png"
+                image="units/dwarves/berserker-attack-5.png:50"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=50
-                image="units/dwarves/berserker-attack-5.png"
+                image="units/dwarves/berserker-attack-5.png:50"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=60
-            image="units/dwarves/berserker-attack-6.png"
+            image="units/dwarves/berserker-attack-[6~8,1].png:[60,40,30*2]"
         [/frame]
         [frame]
-            duration=40
-            image="units/dwarves/berserker-attack-7.png"
+            image="units/dwarves/berserker.png:30"
         [/frame]
-        [frame]
-            duration=30
-            image="units/dwarves/berserker-attack-8.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/dwarves/berserker-attack-1.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/dwarves/berserker.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Runemaster.cfg
===================================================================
--- data/core/units/dwarves/Runemaster.cfg	(revision 56322)
+++ data/core/units/dwarves/Runemaster.cfg	(working copy)
@@ -54,26 +54,21 @@
             name=hammer
         [/filter_attack]
         offset=0.0~0.3,0.3~0.5,0.5~0.6,0.6~0.5,0.5~0.3,0.3~0.0
+        start_time=-350
         [frame]
-            begin=-350
-            end=-100
-            image=units/dwarves/runemaster.png
+            image=units/dwarves/runemaster.png:250
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=300
-                image=units/dwarves/runemaster.png
+                image=units/dwarves/runemaster.png:400
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=300
-                image=units/dwarves/runemaster.png
+                image=units/dwarves/runemaster.png:400
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
Index: data/core/units/dwarves/Fighter.cfg
===================================================================
--- data/core/units/dwarves/Fighter.cfg	(revision 56322)
+++ data/core/units/dwarves/Fighter.cfg	(working copy)
@@ -66,62 +66,8 @@
         start_time=0
         [frame]
             duration=100
-            image="units/dwarves/fighter-idle-1.png"
+            image="units/dwarves/fighter-idle-[1~8,4~8,4,1].png:[100*3,1,100*2,200,100,200,100*2,1,100,300,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-3.png"
-        [/frame]
-        [frame]
-            image="units/dwarves/fighter-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/fighter-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-8.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/fighter-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-6.png"
-        [/frame]
-        [frame]
-            image="units/dwarves/fighter-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-8.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/fighter-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-idle-1.png"
-        [/frame]
     [/idle_anim]
 #endif
     [attack_anim]
@@ -131,49 +77,31 @@
         start_time=-350
         offset=0.0~0.3,0.3~0.6,0.6~0.3,0.3~0.0
         [frame]
-            duration=40
-            image="units/dwarves/fighter-hammer.png"
+            image="units/dwarves/fighter-hammer.png:40"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/fighter-hammer-1.png"
+            image="units/dwarves/fighter-hammer-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/dwarves/fighter-hammer-2.png"
+                image="units/dwarves/fighter-hammer-2.png:100"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/dwarves/fighter-hammer-2.png"
+                image="units/dwarves/fighter-hammer-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/fighter-hammer-3.png"
+            image="units/dwarves/fighter-hammer-[3~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/fighter-hammer-4.png"
+            image="units/dwarves/fighter-hammer.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-hammer-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-hammer-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/fighter-hammer.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -182,56 +110,27 @@
         start_time=-350
         offset=0.0~-0.15:30,-0.15~0.1:60,0.1~0.5:190,0.5~0.6:30,0.6~0.6:40,0.6~0.15:150,0.15~0.0:40
         [frame]
-            duration=40
-            image="units/dwarves/fighter-axe-1.png"
+            image="units/dwarves/fighter-axe-[1~4].png:[40,60*3]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/fighter-axe-2.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/fighter-axe-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/fighter-axe-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=60
-                image="units/dwarves/fighter-axe-5.png"
+                image="units/dwarves/fighter-axe-5.png:60"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=60
-                image="units/dwarves/fighter-axe-5.png"
+                image="units/dwarves/fighter-axe-5.png:60"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=60
-            image="units/dwarves/fighter-axe-6.png"
+            image="units/dwarves/fighter-axe-[6~9].png:60"
         [/frame]
         [frame]
-            duration=60
-            image="units/dwarves/fighter-axe-7.png"
+            image="units/dwarves/fighter.png:20"
         [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/fighter-axe-8.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/fighter-axe-9.png"
-        [/frame]
-        [frame]
-            duration=20
-            image="units/dwarves/fighter.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Arcanister.cfg
===================================================================
--- data/core/units/dwarves/Arcanister.cfg	(revision 56322)
+++ data/core/units/dwarves/Arcanister.cfg	(working copy)
@@ -60,26 +60,21 @@
             name=hammer
         [/filter_attack]
         offset=0.0~0.3,0.3~0.5,0.5~0.6,0.6~0.5,0.5~0.3,0.3~0.0
+        start_time=-350
         [frame]
-            begin=-350
-            end=-100
-            image=units/dwarves/arcanister.png
+            image=units/dwarves/arcanister.png:250
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=300
-                image=units/dwarves/arcanister.png
+                image=units/dwarves/arcanister.png:400
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=300
-                image=units/dwarves/arcanister.png
+                image=units/dwarves/arcanister.png:400
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
Index: data/core/units/dwarves/Scout.cfg
===================================================================
--- data/core/units/dwarves/Scout.cfg	(revision 56322)
+++ data/core/units/dwarves/Scout.cfg	(working copy)
@@ -58,33 +58,26 @@
             name=axe
         [/filter_attack]
         {MISSILE_FRAME_HATCHET}
+        start_time=-300
         [frame]
-            begin=-300
-            end=-100
-            image="units/dwarves/scout-ranged-1.png"
+            image="units/dwarves/scout-ranged-1.png:200"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/dwarves/scout-ranged-2.png
+                image=units/dwarves/scout-ranged-2.png:200
                 sound=hatchet.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/dwarves/scout-ranged-2.png
+                image=units/dwarves/scout-ranged-2.png:200
                 sound=hatchet-miss.wav
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=100
-            image=units/dwarves/scout-ranged-3.png
+            image=units/dwarves/scout-ranged-3.png:100
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -95,48 +88,24 @@
         start_time=-260
         offset=0.0~0.6:260,0.6~0.6:100,0.6~0.0:150
         [frame]
-            duration=80
-            image="units/dwarves/scout-melee-1.png"
+            image="units/dwarves/scout-melee-[1~5].png:[80*2,50*3]"
         [/frame]
-        [frame]
-            duration=80
-            image="units/dwarves/scout-melee-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/scout-melee-3.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/scout-melee-4.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/scout-melee-5.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=50
-                image="units/dwarves/scout-melee-6.png"
+                image="units/dwarves/scout-melee-6.png:50"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=50
-                image="units/dwarves/scout-melee-6.png"
+                image="units/dwarves/scout-melee-6.png:50"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/scout-melee-7.png"
+            image="units/dwarves/scout-melee-[7,8].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/scout-melee-8.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Lord.cfg
===================================================================
--- data/core/units/dwarves/Lord.cfg	(revision 56322)
+++ data/core/units/dwarves/Lord.cfg	(working copy)
@@ -79,40 +79,24 @@
         start_time=-450
         {MISSILE_FRAME_HATCHET}
         [frame]
-            duration=100
-            image="units/dwarves/lord-ranged-1.png"
+            image="units/dwarves/lord-ranged-[1~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/lord-ranged-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/lord-ranged-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/lord-ranged-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/dwarves/lord-ranged-5.png"
+                image="units/dwarves/lord-ranged-5.png:100"
                 sound=hatchet.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/dwarves/lord-ranged-5.png"
+                image="units/dwarves/lord-ranged-5.png:100"
                 sound=hatchet-miss.wav
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/lord-ranged.png"
+            image="units/dwarves/lord-ranged.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -122,49 +106,31 @@
         start_time=-350
         offset=0.0~0.3,0.3~0.6,0.6~0.3,0.3~0.0
         [frame]
-            duration=40
-            image="units/dwarves/lord-hammer.png"
+            image="units/dwarves/lord-hammer.png:40"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/lord-hammer-1.png"
+            image="units/dwarves/lord-hammer-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/dwarves/lord-hammer-2.png"
+                image="units/dwarves/lord-hammer-2.png:100"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/dwarves/lord-hammer-2.png"
+                image="units/dwarves/lord-hammer-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/lord-hammer-3.png"
+            image="units/dwarves/lord-hammer-[3~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/lord-hammer-4.png"
+            image="units/dwarves/lord-hammer.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/lord-hammer-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/lord-hammer-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/lord-hammer.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -173,56 +139,27 @@
         start_time=-350
         offset=0.0~-0.15:30,-0.15~0.1:60,0.1~0.5:190,0.5~0.6:30,0.6~0.6:40,0.6~0.15:150,0.15~0.0:40
         [frame]
-            duration=40
-            image="units/dwarves/lord-axe-1.png"
+            image="units/dwarves/lord-axe-[1~4].png:[40,60*3]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/lord-axe-2.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/lord-axe-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/lord-axe-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=60
-                image="units/dwarves/lord-axe-5.png"
+                image="units/dwarves/lord-axe-5.png:60"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=60
-                image="units/dwarves/lord-axe-5.png"
+                image="units/dwarves/lord-axe-5.png:60"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=60
-            image="units/dwarves/lord-axe-6.png"
+            image="units/dwarves/lord-axe-[6~9].png:60"
         [/frame]
         [frame]
-            duration=60
-            image="units/dwarves/lord-axe-7.png"
+            image="units/dwarves/lord.png:20"
         [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/lord-axe-8.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/lord-axe-9.png"
-        [/frame]
-        [frame]
-            duration=20
-            image="units/dwarves/lord.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Runesmith.cfg
===================================================================
--- data/core/units/dwarves/Runesmith.cfg	(revision 56322)
+++ data/core/units/dwarves/Runesmith.cfg	(working copy)
@@ -60,56 +60,24 @@
         start_time=-400
         offset=0.0~-0.15,-0.15~0.1,0.1~0.5,0.5~0.6,0.6~0.6,0.6~0.15,0.15~0.0
         [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-1.png"
+            image="units/dwarves/runesmith-attack-se-[1~4].png:70"
         [/frame]
-        [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-2.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-3.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=70
-                image="units/dwarves/runesmith-attack-se-5.png"
+                image="units/dwarves/runesmith-attack-se-5.png:70"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=70
-                image="units/dwarves/runesmith-attack-se-5.png"
+                image="units/dwarves/runesmith-attack-se-5.png:70"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-6.png"
+            image="units/dwarves/runesmith-attack-se-[6~10].png:70"
         [/frame]
-        [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-7.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-8.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-9.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/dwarves/runesmith-attack-se-10.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Sentinel.cfg
===================================================================
--- data/core/units/dwarves/Sentinel.cfg	(revision 56322)
+++ data/core/units/dwarves/Sentinel.cfg	(working copy)
@@ -67,39 +67,32 @@
         [filter_attack]
             name=javelin
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/dwarves/sentinel-defend-1.png"
+            image="units/dwarves/sentinel-defend-1.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=-50
-                image="units/dwarves/sentinel-attack.png"
+                image="units/dwarves/sentinel-attack.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=-50
-                image="units/dwarves/sentinel-attack.png"
+                image="units/dwarves/sentinel-attack.png:100"
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=0
-            image="units/dwarves/sentinel.png"
+            image="units/dwarves/sentinel.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -107,42 +100,30 @@
             name=spear
         [/filter_attack]
         [frame]
-            begin=-200
-            end=-150
-            image="units/dwarves/sentinel.png"
+            image="units/dwarves/sentinel.png:50"
         [/frame]
         [frame]
-            begin=-150
-            end=-100
-            image="units/dwarves/sentinel-defend-1.png"
+            image="units/dwarves/sentinel-defend-1.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/dwarves/sentinel-attack.png"
+                image="units/dwarves/sentinel-attack.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/dwarves/sentinel-attack.png"
+                image="units/dwarves/sentinel-attack.png:150"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=75
-            image="units/dwarves/sentinel-defend-1.png"
+            image="units/dwarves/sentinel-defend-1.png:25"
         [/frame]
         [frame]
-            begin=75
-            end=150
-            image="units/dwarves/sentinel.png"
+            image="units/dwarves/sentinel.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Pathfinder.cfg
===================================================================
--- data/core/units/dwarves/Pathfinder.cfg	(revision 56322)
+++ data/core/units/dwarves/Pathfinder.cfg	(working copy)
@@ -41,119 +41,8 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-1.png"
+            image="units/dwarves/pathfinder-idle-[1~14,13,14~1].png:[100*3,1,100*2,200,100,200,100*2,1,100,300,100,300,100*13]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-3.png"
-        [/frame]
-        [frame]
-            image="units/dwarves/pathfinder-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/pathfinder-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-8.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/pathfinder-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-11.png"
-        [/frame]
-        [frame]
-            image="units/dwarves/pathfinder-idle-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-13.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/pathfinder-idle-14.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-13.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/pathfinder-idle-14.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-13.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack]
         name=axe
@@ -177,33 +66,26 @@
             name=axe
         [/filter_attack]
         {MISSILE_FRAME_HATCHET}
+        start_time=-300
         [frame]
-            begin=-300
-            end=-100
-            image="units/dwarves/pathfinder-ranged-1.png"
+            image="units/dwarves/pathfinder-ranged-1.png:200"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/dwarves/pathfinder-ranged-2.png
+                image=units/dwarves/pathfinder-ranged-2.png:200
                 sound=hatchet.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/dwarves/pathfinder-ranged-2.png
+                image=units/dwarves/pathfinder-ranged-2.png:200
                 sound=hatchet-miss.wav
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=100
-            image=units/dwarves/pathfinder-ranged-3.png
+            image=units/dwarves/pathfinder-ranged-3.png:100
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -214,44 +96,27 @@
         start_time=-340
         offset=0.0~0.1:290,0.1~0.6:150,0.6~0.0:150
         [frame]
-            duration=80
-            image="units/dwarves/pathfinder-melee.png"
+            image="units/dwarves/pathfinder-melee.png:80"
         [/frame]
         [frame]
-            duration=80
-            image="units/dwarves/pathfinder-melee-1.png"
+            image="units/dwarves/pathfinder-melee-[1~3].png:[80*2,50]"
         [/frame]
-        [frame]
-            duration=80
-            image="units/dwarves/pathfinder-melee-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/pathfinder-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=50
-                image="units/dwarves/pathfinder-melee-4.png"
+                image="units/dwarves/pathfinder-melee-4.png:50"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=50
-                image="units/dwarves/pathfinder-melee-4.png"
+                image="units/dwarves/pathfinder-melee-4.png:50"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/pathfinder-melee-5.png"
+            image="units/dwarves/pathfinder-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/pathfinder-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Thunderguard.cfg
===================================================================
--- data/core/units/dwarves/Thunderguard.cfg	(revision 56322)
+++ data/core/units/dwarves/Thunderguard.cfg	(working copy)
@@ -56,14 +56,13 @@
         [filter_attack]
             name=thunderstick
         [/filter_attack]
+        start_time=-400
         [if]
             {MISSILE_FRAME_MUZZLE_FLARE_HIT_DIAG_SOUTH 0 0}
             direction=se,sw
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderguard-attack-ranged-se.png"
+                image="units/dwarves/thunderguard-attack-ranged-se.png:400"
                 sound=thunderstick.ogg
             [/frame]
         [/if]
@@ -72,9 +71,7 @@
             direction=se,sw
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderguard-attack-ranged-se.png"
+                image="units/dwarves/thunderguard-attack-ranged-se.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -83,9 +80,7 @@
             direction=ne,nw
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderguard-attack-ranged-ne.png"
+                image="units/dwarves/thunderguard-attack-ranged-ne.png:400"
                 sound=thunderstick.ogg
             [/frame]
         [/else]
@@ -94,9 +89,7 @@
             direction=ne,nw
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderguard-attack-ranged-ne.png"
+                image="units/dwarves/thunderguard-attack-ranged-ne.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -105,9 +98,7 @@
             direction=n
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderguard-attack-ranged-n.png"
+                image="units/dwarves/thunderguard-attack-ranged-n.png:400"
                 sound=thunderstick.ogg
             [/frame]
         [/else]
@@ -116,9 +107,7 @@
             direction=n
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderguard-attack-ranged-n.png"
+                image="units/dwarves/thunderguard-attack-ranged-n.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -127,9 +116,7 @@
             direction=s
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderguard-attack-ranged-s.png"
+                image="units/dwarves/thunderguard-attack-ranged-s.png:400"
                 sound=thunderstick.ogg
             [/frame]
         [/else]
@@ -138,16 +125,12 @@
             direction=s
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderguard-attack-ranged-s.png"
+                image="units/dwarves/thunderguard-attack-ranged-s.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=1
-            image="units/dwarves/thunderguard-attack-ranged-se.png"
+            image="units/dwarves/thunderguard-attack-ranged-se.png:1"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -157,40 +140,27 @@
         start_time=-250
         offset=0.0~0.1:200,0.1~0.6:200,0.6~0.0:250
         [frame]
-            duration=50
-            image="units/dwarves/thunderguard-blade.png"
+            image="units/dwarves/thunderguard-blade.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/thunderguard-blade-1.png"
+            image="units/dwarves/thunderguard-blade-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/thunderguard-blade-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/dwarves/thunderguard-blade-3.png"
+                image="units/dwarves/thunderguard-blade-3.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/dwarves/thunderguard-blade-3.png"
+                image="units/dwarves/thunderguard-blade-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/thunderguard-blade-4.png"
+            image="units/dwarves/thunderguard-blade-[4,5].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/thunderguard-blade-5.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Dragonguard.cfg
===================================================================
--- data/core/units/dwarves/Dragonguard.cfg	(revision 56322)
+++ data/core/units/dwarves/Dragonguard.cfg	(working copy)
@@ -55,19 +55,16 @@
         [filter_attack]
             name=dragonstaff
         [/filter_attack]
+        start_time=-600
         [frame]
-            begin=-600
-            end=-400
-            image="units/dwarves/dragonguard-defend.png"
+            image="units/dwarves/dragonguard-defend.png:200"
         [/frame]
         [if]
             {MISSILE_FRAME_MUZZLE_FLARE_HIT_DIAG_SOUTH 0 0}
             direction=se,sw
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/dragonguard-attack-ranged-se.png"
+                image="units/dwarves/dragonguard-attack-ranged-se.png:400"
                 sound=dragonstick.ogg
             [/frame]
         [/if]
@@ -76,9 +73,7 @@
             direction=se,sw
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/dragonguard-attack-ranged-se.png"
+                image="units/dwarves/dragonguard-attack-ranged-se.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -87,9 +82,7 @@
             direction=ne,nw
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/dragonguard-attack-ranged-ne.png"
+                image="units/dwarves/dragonguard-attack-ranged-ne.png:400"
                 sound=dragonstick.ogg
             [/frame]
         [/else]
@@ -98,9 +91,7 @@
             direction=ne,nw
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/dragonguard-attack-ranged-ne.png"
+                image="units/dwarves/dragonguard-attack-ranged-ne.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -109,9 +100,7 @@
             hits=yes
             direction=n
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/dragonguard-attack-ranged-n.png"
+                image="units/dwarves/dragonguard-attack-ranged-n.png:400"
                 sound=dragonstick.ogg
             [/frame]
         [/else]
@@ -120,9 +109,7 @@
             hits=no
             direction=n
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/dragonguard-attack-ranged-n.png"
+                image="units/dwarves/dragonguard-attack-ranged-n.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -131,9 +118,7 @@
             direction=s
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/dragonguard-attack-ranged-s.png"
+                image="units/dwarves/dragonguard-attack-ranged-s.png:400"
                 sound=dragonstick.ogg
             [/frame]
         [/else]
@@ -142,16 +127,12 @@
             direction=s
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/dragonguard-attack-ranged-s.png"
+                image="units/dwarves/dragonguard-attack-ranged-s.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=1
-            image="units/dwarves/dragonguard-attack-ranged-se.png"
+            image="units/dwarves/dragonguard-attack-ranged-se.png:1"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -161,40 +142,27 @@
         start_time=-250
         offset=0.0~0.1:200,0.1~0.6:200,0.6~0.0:250
         [frame]
-            duration=50
-            image="units/dwarves/dragonguard-blade.png"
+            image="units/dwarves/dragonguard-blade.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/dragonguard-blade-1.png"
+            image="units/dwarves/dragonguard-blade-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/dragonguard-blade-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/dwarves/dragonguard-blade-3.png"
+                image="units/dwarves/dragonguard-blade-3.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/dwarves/dragonguard-blade-3.png"
+                image="units/dwarves/dragonguard-blade-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/dragonguard-blade-4.png"
+            image="units/dwarves/dragonguard-blade-[4,5].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/dragonguard-blade-5.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Steelclad.cfg
===================================================================
--- data/core/units/dwarves/Steelclad.cfg	(revision 56322)
+++ data/core/units/dwarves/Steelclad.cfg	(working copy)
@@ -68,69 +68,8 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-1.png"
+            image="units/dwarves/steelclad-idle-[1~11,1~3,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-1.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
@@ -139,49 +78,31 @@
         start_time=-350
         offset=0.0~0.3,0.3~0.6,0.6~0.3,0.3~0.0
         [frame]
-            duration=40
-            image="units/dwarves/steelclad-hammer.png"
+            image="units/dwarves/steelclad-hammer.png:40"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/steelclad-hammer-1.png"
+            image="units/dwarves/steelclad-hammer-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/dwarves/steelclad-hammer-2.png"
+                image="units/dwarves/steelclad-hammer-2.png:100"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/dwarves/steelclad-hammer-2.png"
+                image="units/dwarves/steelclad-hammer-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/steelclad-hammer-3.png"
+            image="units/dwarves/steelclad-hammer-[3~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/steelclad-hammer-4.png"
+            image="units/dwarves/steelclad-hammer.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-hammer-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-hammer-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/steelclad-hammer.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -190,56 +111,27 @@
         start_time=-350
         offset=0.0~-0.15:30,-0.15~0.1:60,0.1~0.5:190,0.5~0.6:30,0.6~0.6:40,0.6~0.15:150,0.15~0.0:40
         [frame]
-            duration=40
-            image="units/dwarves/steelclad-axe-1.png"
+            image="units/dwarves/steelclad-axe-[1~4].png:[40,60*3]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/steelclad-axe-2.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/steelclad-axe-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/steelclad-axe-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=60
-                image="units/dwarves/steelclad-axe-5.png"
+                image="units/dwarves/steelclad-axe-5.png:60"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=60
-                image="units/dwarves/steelclad-axe-5.png"
+                image="units/dwarves/steelclad-axe-5.png:60"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=60
-            image="units/dwarves/steelclad-axe-6.png"
+            image="units/dwarves/steelclad-axe-[6~9].png"
         [/frame]
         [frame]
-            duration=60
-            image="units/dwarves/steelclad-axe-7.png"
+            image="units/dwarves/steelclad.png:20"
         [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/steelclad-axe-8.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/dwarves/steelclad-axe-9.png"
-        [/frame]
-        [frame]
-            duration=20
-            image="units/dwarves/steelclad.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Explorer.cfg
===================================================================
--- data/core/units/dwarves/Explorer.cfg	(revision 56322)
+++ data/core/units/dwarves/Explorer.cfg	(working copy)
@@ -55,33 +55,26 @@
             name=axe
         [/filter_attack]
         {MISSILE_FRAME_HATCHET}
+        start_time=-300
         [frame]
-            begin=-300
-            end=-100
-            image="units/dwarves/explorer-ranged-1.png"
+            image="units/dwarves/explorer-ranged-1.png:200"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/dwarves/explorer-ranged-2.png
+                image=units/dwarves/explorer-ranged-2.png:200
                 sound=hatchet.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/dwarves/explorer-ranged-2.png
+                image=units/dwarves/explorer-ranged-2.png:200
                 sound=hatchet-miss.wav
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=100
-            image=units/dwarves/explorer-ranged-3.png
+            image=units/dwarves/explorer-ranged-3.png:100
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -92,40 +85,24 @@
         start_time=-260
         offset=0.0~0.1:210,0.1~0.6:150,0.6~0.0:150
         [frame]
-            duration=80
-            image="units/dwarves/explorer-melee-1.png"
+            image="units/dwarves/explorer-melee-[1~3].png:[80*2,50]"
         [/frame]
-        [frame]
-            duration=80
-            image="units/dwarves/explorer-melee-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/explorer-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=50
-                image="units/dwarves/explorer-melee-4.png"
+                image="units/dwarves/explorer-melee-4.png:50"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=50
-                image="units/dwarves/explorer-melee-4.png"
+                image="units/dwarves/explorer-melee-4.png:50"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/explorer-melee-5.png"
+            image="units/dwarves/explorer-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/explorer-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Thunderer.cfg
===================================================================
--- data/core/units/dwarves/Thunderer.cfg	(revision 56322)
+++ data/core/units/dwarves/Thunderer.cfg	(working copy)
@@ -33,77 +33,17 @@
         image="portraits/dwarves/transparent/thunderer.png"
     [/portrait]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=200
-            image="units/dwarves/thunderer-die1.png"
+            image="units/dwarves/thunderer-die[1~3].png:200"
         [/frame]
-        [frame]
-            begin=200
-            end=400
-            image="units/dwarves/thunderer-die2.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=600
-            image="units/dwarves/thunderer-die3.png"
-        [/frame]
     [/death]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/dwarves/thunderer-idle-1.png"
+            image="units/dwarves/thunderer-idle-[1~6,5,6,5,6,4,2,1].png:[100*3,800,200,300,200,300,200*2,500,100*2]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/thunderer-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/thunderer-idle-3.png"
-        [/frame]
-        [frame]
-            duration=800
-            image="units/dwarves/thunderer-idle-4.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/thunderer-idle-5.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/thunderer-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/thunderer-idle-5.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/thunderer-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/thunderer-idle-5.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/thunderer-idle-6.png"
-        [/frame]
-        [frame]
-            duration=500
-            image="units/dwarves/thunderer-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/thunderer-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/thunderer-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack]
         name=dagger
@@ -126,14 +66,13 @@
         [filter_attack]
             name=thunderstick
         [/filter_attack]
+        start_time=-400
         [if]
             {MISSILE_FRAME_MUZZLE_FLARE_HIT_SOUTH 0 0}
             direction=s
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderer-attack-s.png"
+                image="units/dwarves/thunderer-attack-s.png:400"
                 sound=thunderstick.ogg
             [/frame]
         [/if]
@@ -142,9 +81,7 @@
             direction=s
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderer-attack-s.png"
+                image="units/dwarves/thunderer-attack-s.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -153,9 +90,7 @@
             direction=ne,nw
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderer-attack-ne.png"
+                image="units/dwarves/thunderer-attack-ne.png:400"
                 sound=thunderstick.ogg
             [/frame]
         [/else]
@@ -164,9 +99,7 @@
             direction=ne,nw
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderer-attack-ne.png"
+                image="units/dwarves/thunderer-attack-ne.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -175,9 +108,7 @@
             direction=n
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderer-attack-n.png"
+                image="units/dwarves/thunderer-attack-n.png:400"
                 sound=thunderstick.ogg
             [/frame]
         [/else]
@@ -186,9 +117,7 @@
             direction=n
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderer-attack-n.png"
+                image="units/dwarves/thunderer-attack-n.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
@@ -197,9 +126,7 @@
             direction=se,sw
             hits=yes
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderer-attack-se.png"
+                image="units/dwarves/thunderer-attack-se.png:400"
                 sound=thunderstick.ogg
             [/frame]
         [/else]
@@ -208,16 +135,12 @@
             direction=se,sw
             hits=no
             [frame]
-                begin=-400
-                end=0
-                image="units/dwarves/thunderer-attack-se.png"
+                image="units/dwarves/thunderer-attack-se.png:400"
                 sound=thunderstick-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=1
-            image="units/dwarves/thunderer-attack-se.png"
+            image="units/dwarves/thunderer-attack-se.png:1"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -227,40 +150,27 @@
         start_time=-250
         offset=0.0~0.1:200,0.1~0.6:200,0.6~0.0:250
         [frame]
-            duration=50
-            image="units/dwarves/thunderer-blade.png"
+            image="units/dwarves/thunderer-blade.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/dwarves/thunderer-blade-1.png"
+            image="units/dwarves/thunderer-blade-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/thunderer-blade-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/dwarves/thunderer-blade-3.png"
+                image="units/dwarves/thunderer-blade-3.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/dwarves/thunderer-blade-3.png"
+                image="units/dwarves/thunderer-blade-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/dwarves/thunderer-blade-4.png"
+            image="units/dwarves/thunderer-blade-[4,5].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/thunderer-blade-5.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Stalwart.cfg
===================================================================
--- data/core/units/dwarves/Stalwart.cfg	(revision 56322)
+++ data/core/units/dwarves/Stalwart.cfg	(working copy)
@@ -62,82 +62,64 @@
         [filter_attack]
             name=javelin
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/dwarves/stalwart-defend-1.png"
+            image="units/dwarves/stalwart-defend-1.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=-50
-                image="units/dwarves/stalwart-attack.png"
+                image="units/dwarves/stalwart-attack.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=-50
-                image="units/dwarves/stalwart-attack.png"
+                image="units/dwarves/stalwart-attack.png:100"
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=0
-            image="units/dwarves/stalwart.png"
+            image="units/dwarves/stalwart.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=spear
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/dwarves/stalwart.png"
+            image="units/dwarves/stalwart.png:50"
         [/frame]
         [frame]
-            begin=-150
-            end=-100
-            image="units/dwarves/stalwart-defend-1.png"
+            image="units/dwarves/stalwart-defend-1.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/dwarves/stalwart-attack.png"
+                image="units/dwarves/stalwart-attack.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/dwarves/stalwart-attack.png"
+                image="units/dwarves/stalwart-attack.png:150"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=75
-            image="units/dwarves/stalwart-defend-1.png"
+            image="units/dwarves/stalwart-defend-1.png:25"
         [/frame]
         [frame]
-            begin=75
-            end=150
-            image="units/dwarves/stalwart.png"
+            image="units/dwarves/stalwart.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/dwarves/Ulfserker.cfg
===================================================================
--- data/core/units/dwarves/Ulfserker.cfg	(revision 56322)
+++ data/core/units/dwarves/Ulfserker.cfg	(working copy)
@@ -55,53 +55,8 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/dwarves/ulfserker-idle-1.png"
+            image="units/dwarves/ulfserker-idle-[1~6,3,5,6,3~1].png:[100*2,200,100*2,300,200*2,300,200,100*2]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/ulfserker-idle-2.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/ulfserker-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/ulfserker-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/ulfserker-idle-5.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/ulfserker-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/ulfserker-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/ulfserker-idle-5.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/dwarves/ulfserker-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/dwarves/ulfserker-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/ulfserker-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/dwarves/ulfserker-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
@@ -125,128 +80,46 @@
 
             value_second=1
             [frame]
-                duration=200
-                image="units/dwarves/ulfserker.png"
+                image="units/dwarves/ulfserker.png:200"
             [/frame]
             [frame]
-                duration=400
-                image="units/dwarves/ulfserker-laugh-1.png"
+                image="units/dwarves/ulfserker-laugh-1.png:400"
             [/frame]
             [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-2.png"
+                image="units/dwarves/ulfserker-laugh-2.png:200"
                 sound=dwarf-laugh.wav
             [/frame]
             [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-1.png"
+                image="units/dwarves/ulfserker-laugh-[1,2,1,2,1,2,1,2,1,2,1,2,1].png:200"
             [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-1.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-2.png"
-            [/frame]
-            [frame]
-                duration=200
-                image="units/dwarves/ulfserker-laugh-1.png"
-            [/frame]
         [/else]
         [else]
             [frame]
-                duration=1
-                image="units/dwarves/ulfserker.png"
+                image="units/dwarves/ulfserker.png:1"
             [/frame]
         [/else]
         [frame]
-            duration=40
-            image="units/dwarves/ulfserker-attack-1.png"
+            image="units/dwarves/ulfserker-attack-[1~4].png:[40,50*3]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/ulfserker-attack-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/ulfserker-attack-3.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/dwarves/ulfserker-attack-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=50
-                image="units/dwarves/ulfserker-attack-5.png"
+                image="units/dwarves/ulfserker-attack-5.png:50"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=50
-                image="units/dwarves/ulfserker-attack-5.png"
+                image="units/dwarves/ulfserker-attack-5.png:50"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=60
-            image="units/dwarves/ulfserker-attack-6.png"
+            image="units/dwarves/ulfserker-attack-[6~8,1].png:[60,40,30*2]"
         [/frame]
         [frame]
-            duration=40
-            image="units/dwarves/ulfserker-attack-7.png"
+            image="units/dwarves/ulfserker.png:30"
         [/frame]
-        [frame]
-            duration=30
-            image="units/dwarves/ulfserker-attack-8.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/dwarves/ulfserker-attack-1.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/dwarves/ulfserker.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Fighter.cfg
===================================================================
--- data/core/units/elves/Fighter.cfg	(revision 56322)
+++ data/core/units/elves/Fighter.cfg	(working copy)
@@ -56,156 +56,71 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/elves-wood/fighter-idle-1.png"
+            image="units/elves-wood/fighter-idle-[1~6,5~10,9,11,12].png:[100*2,125,150,175,200*2,400,175,200,250,400,150*3]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/fighter-idle-2.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/fighter-idle-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/elves-wood/fighter-idle-4.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/fighter-idle-5.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/elves-wood/fighter-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/elves-wood/fighter-idle-5.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/elves-wood/fighter-idle-6.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/fighter-idle-7.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/elves-wood/fighter-idle-8.png"
-        [/frame]
-        [frame]
-            duration=250
-            image="units/elves-wood/fighter-idle-9.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/elves-wood/fighter-idle-10.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/elves-wood/fighter-idle-9.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/elves-wood/fighter-idle-11.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/elves-wood/fighter-idle-12.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/fighter-bow.png"
+            image="units/elves-wood/fighter-bow.png:65"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/fighter-bow-attack1.png"
+                image="units/elves-wood/fighter-bow-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/fighter-bow-attack1.png"
+                image="units/elves-wood/fighter-bow-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/fighter-bow-attack2.png"
+            image="units/elves-wood/fighter-bow-attack[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/fighter-bow-attack3.png"
+            image="units/elves-wood/fighter-bow.png:65"
         [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/fighter-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/fighter-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-175
         [frame]
-            begin=-175
-            end=-100
-            image="units/elves-wood/fighter.png"
+            image="units/elves-wood/fighter.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/fighter-melee-1.png"
+                image="units/elves-wood/fighter-melee-1.png:200"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/fighter-melee-1.png"
+                image="units/elves-wood/fighter-melee-1.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/elves-wood/fighter-melee-2.png"
+            image="units/elves-wood/fighter-melee-2.png:50"
         [/frame]
         [frame]
-            begin=150
-            end=175
-            image="units/elves-wood/fighter.png"
+            image="units/elves-wood/fighter.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Scout.cfg
===================================================================
--- data/core/units/elves/Scout.cfg	(revision 56322)
+++ data/core/units/elves/Scout.cfg	(working copy)
@@ -62,177 +62,81 @@
     [/attack]
     {DEFENSE_ANIM "units/elves-wood/scout-defend.png" "units/elves-wood/scout.png" {SOUND_LIST:HORSE_HIT} }
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/elves-wood/scout-moving.png"
+            image="units/elves-wood/scout-moving.png:150"
         [/frame]
     [/movement_anim]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-1.png"
+            image="units/elves-wood/scout-idle-[1~8,7,8,7~16].png:[125*9,150,175,150,175*8]"
         [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-2.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-3.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-4.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-5.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-6.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-7.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-8.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/elves-wood/scout-idle-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/elves-wood/scout-idle-8.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/elves-wood/scout-idle-8.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-9.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-10.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-11.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-12.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-13.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-14.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-15.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/elves-wood/scout-idle-16.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-400
         [if]
             hits=yes
             [frame]
-                begin=-400
-                end=-300
-                image="units/elves-wood/scout-attack1.png"
+                image="units/elves-wood/scout-attack1.png:100"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-400
-                end=-300
-                image="units/elves-wood/scout-attack1.png"
+                image="units/elves-wood/scout-attack1.png:100"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-300
-            end=-50
-            image="units/elves-wood/scout-attack2.png"
+            image="units/elves-wood/scout-attack2.png:250"
         [/frame]
         [frame]
-            begin=-50
-            end=50
-            image="units/elves-wood/scout-moving.png"
+            image="units/elves-wood/scout-moving.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/scout.png"
+            image="units/elves-wood/scout.png:25"
             sound=horse-elf-canter.wav
         [/frame]
         [frame]
-            begin=-175
-            end=-100
-            image="units/elves-wood/scout-moving.png"
+            image="units/elves-wood/scout-moving.png:75"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/scout-attack.png"
+                image="units/elves-wood/scout-attack.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/scout-attack.png"
+                image="units/elves-wood/scout-attack.png:200"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/elves-wood/scout-moving.png"
+            image="units/elves-wood/scout-moving.png:100"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/elves-wood/scout.png"
+            image="units/elves-wood/scout.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Outrider.cfg
===================================================================
--- data/core/units/elves/Outrider.cfg	(revision 56322)
+++ data/core/units/elves/Outrider.cfg	(working copy)
@@ -61,98 +61,73 @@
     [/attack]
     {DEFENSE_ANIM "units/elves-wood/outrider-defend.png" "units/elves-wood/outrider.png" {SOUND_LIST:HORSE_HIT} }
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/elves-wood/outrider-moving.png"
+            image="units/elves-wood/outrider-moving.png:150"
         [/frame]
     [/movement_anim]
     [attack_anim]
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-500
         [if]
             hits=yes
             [frame]
-                begin=-500
-                end=-400
-                image="units/elves-wood/outrider-attack1.png"
+                image="units/elves-wood/outrider-attack1.png:100"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-500
-                end=-400
-                image="units/elves-wood/outrider-attack1.png"
+                image="units/elves-wood/outrider-attack1.png:100"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-400
-            end=-150
-            image="units/elves-wood/outrider-attack2.png"
+            image="units/elves-wood/outrider-attack[2,1].png:[250,100]"
         [/frame]
         [frame]
-            begin=-150
-            end=-50
-            image="units/elves-wood/outrider-attack1.png"
+            image="units/elves-wood/outrider-moving.png:100"
         [/frame]
-        [frame]
-            begin=-50
-            end=50
-            image="units/elves-wood/outrider-moving.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/outrider.png"
+            image="units/elves-wood/outrider.png:25"
             sound=horse-elf-canter.wav
         [/frame]
         [frame]
-            begin=-175
-            end=-100
-            image="units/elves-wood/outrider-melee-2.png"
+            image="units/elves-wood/outrider-melee-2.png:75"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/outrider-melee-1.png"
+                image="units/elves-wood/outrider-melee-1.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/outrider-melee-1.png"
+                image="units/elves-wood/outrider-melee-1.png:200"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/elves-wood/outrider-moving.png"
+            image="units/elves-wood/outrider-moving.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=200
-            image="units/elves-wood/outrider.png"
+            image="units/elves-wood/outrider.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/High_Lord.cfg
===================================================================
--- data/core/units/elves/High_Lord.cfg	(revision 56322)
+++ data/core/units/elves/High_Lord.cfg	(working copy)
@@ -36,35 +36,29 @@
             range=melee
         [/filter_attack]
         [frame]
-            duration=1
-            image="units/elves-wood/high-lord.png"
+            image="units/elves-wood/high-lord.png:1"
         [/frame]
         [frame]
-            duration=100
-            image="units/elves-wood/high-lord-defend-1.png"
+            image="units/elves-wood/high-lord-defend-1.png:100"
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=100
-                image="units/elves-wood/high-lord-defend-2.png"
+                image="units/elves-wood/high-lord-defend-2.png:100"
                 sound={SOUND_LIST:ELF_HIT}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=100
-                image="units/elves-wood/high-lord-defend-2.png"
+                image="units/elves-wood/high-lord-defend-2.png:100"
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/elves-wood/high-lord-defend-1.png"
+            image="units/elves-wood/high-lord-defend-1.png:100"
         [/frame]
         [frame]
-            duration=1
-            image="units/elves-wood/high-lord.png"
+            image="units/elves-wood/high-lord.png:1"
         [/frame]
     [/defend]
     {DEFENSE_ANIM_RANGE "units/elves-wood/high-lord-magic-defend.png" "units/elves-wood/high-lord-magic.png" {SOUND_LIST:ELF_HIT} ranged}
@@ -93,100 +87,62 @@
         [filter_attack]
             name=faerie fire
         [/filter_attack]
-        hits=yes
         {MISSILE_FRAME_FAERIE_FIRE}
 
-        [frame]
-            begin=-450
-            end=-375
-            image="units/elves-wood/high-lord-magic.png"
-            sound=magic-faeriefire.ogg
+        start_time=-450
+        [if]
+            hits=yes
+            [frame]
+                image="units/elves-wood/high-lord-magic.png:75"
+                sound=magic-faeriefire.ogg
 
-            halo=halo/elven/faerie-fire-halo1.png
-            halo_x,halo_y=-19,-14
-        [/frame]
-        [frame]
-            begin=-375
-            end=-300
-            image="units/elves-wood/high-lord-magic.png"
-            halo=halo/elven/faerie-fire-halo2.png
-            halo_x,halo_y=-19,-14
-        [/frame]
-        [frame]
-            begin=-300
-            end=75
-            image="units/elves-wood/high-lord-magic-1.png"
-            halo=halo/elven/faerie-fire-halo[3~7].png:75
-            halo_x,halo_y=-19,-14
-        [/frame]
-    [/attack_anim]
-    [attack_anim]
-        [filter_attack]
-            name=faerie fire
-        [/filter_attack]
-        hits=no
-        {MISSILE_FRAME_FAERIE_FIRE}
+                halo=halo/elven/faerie-fire-halo1.png
+                halo_x,halo_y=-19,-14
+            [/frame]
+        [/if]
+        [else]
+            hits=no
+            [frame]
+                image="units/elves-wood/high-lord-magic.png:75"
+                sound=magic-faeriefire-miss.ogg
 
+                halo=halo/elven/faerie-fire-halo1.png
+                halo_x,halo_y=-19,-14
+            [/frame]
+        [/else]
         [frame]
-            begin=-450
-            end=-375
-            image="units/elves-wood/high-lord-magic.png"
-            sound=magic-faeriefire-miss.ogg
-
-            halo=halo/elven/faerie-fire-halo1.png
+            image="units/elves-wood/high-lord-magic.png:75,units/elves-wood/high-lord-magic-1.png"
+            halo=halo/elven/faerie-fire-halo[2~7].png:75
             halo_x,halo_y=-19,-14
         [/frame]
-        [frame]
-            begin=-375
-            end=-300
-            image="units/elves-wood/high-lord-magic.png"
-            halo=halo/elven/faerie-fire-halo2.png
-            halo_x,halo_y=-19,-14
-        [/frame]
-        [frame]
-            begin=-300
-            end=75
-            image="units/elves-wood/high-lord-magic-1.png"
-            halo=halo/elven/faerie-fire-halo[3~7].png:75
-            halo_x,halo_y=-19,-14
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/high-lord.png"
+            image="units/elves-wood/high-lord.png:25"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-175
-                end=-75
-                image="units/elves-wood/high-lord-attack-sword-1.png"
+                image="units/elves-wood/high-lord-attack-sword-1.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-175
-                end=-75
-                image="units/elves-wood/high-lord-attack-sword-1.png"
+                image="units/elves-wood/high-lord-attack-sword-1.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=-75
-            end=100
-            image="units/elves-wood/high-lord-attack-sword-2.png"
+            image="units/elves-wood/high-lord-attack-sword-2.png:175"
         [/frame]
         [frame]
-            begin=100
-            end=200
-            image="units/elves-wood/high-lord.png"
+            image="units/elves-wood/high-lord.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Archer.cfg
===================================================================
--- data/core/units/elves/Archer.cfg	(revision 56322)
+++ data/core/units/elves/Archer.cfg	(working copy)
@@ -55,103 +55,68 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/archer-bow.png"
+            image="units/elves-wood/archer-bow.png:65"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/archer-bow-attack1.png"
+                image="units/elves-wood/archer-bow-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/archer-bow-attack1.png"
+                image="units/elves-wood/archer-bow-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/archer-bow-attack2.png"
+            image="units/elves-wood/archer-bow-attack[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/archer-bow-attack3.png"
+            image="units/elves-wood/archer-bow.png:65"
         [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/archer-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/archer-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/archer-sword.png"
+            image="units/elves-wood/archer-sword.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-75
-            image="units/elves-wood/archer-sword-1.png"
+            image="units/elves-wood/archer-sword-1.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/archer-sword-2.png"
+                image="units/elves-wood/archer-sword-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/archer-sword-2.png"
+                image="units/elves-wood/archer-sword-2.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image="units/elves-wood/archer-sword-3.png"
+            image="units/elves-wood/archer-sword-[3,4].png:50"
         [/frame]
         [frame]
-            begin=125
-            end=175
-            image="units/elves-wood/archer-sword-4.png"
+            image="units/elves-wood/archer-sword.png:25"
         [/frame]
-        [frame]
-            begin=175
-            end=200
-            image="units/elves-wood/archer-sword.png"
-        [/frame]
     [/attack_anim]
     [female]
         name= _ "female^Elvish Archer"
@@ -178,130 +143,60 @@
                 name=bow
             [/filter_attack]
             [frame]
-                image="units/elves-wood/archer+female-bow.png"
+                image="units/elves-wood/archer+female-bow.png:65"
             [/frame]
             [if]
                 [frame]
-                    image="units/elves-wood/archer+female-bow-attack1.png"
+                    image="units/elves-wood/archer+female-bow-attack1.png:75"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/elves-wood/archer+female-bow-attack1.png"
+                    image="units/elves-wood/archer+female-bow-attack1.png:75"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/archer+female-bow-attack2.png"
+                image="units/elves-wood/archer+female-bow-attack[2~4].png:[75,100,130]"
             [/frame]
             [frame]
-                image="units/elves-wood/archer+female-bow-attack3.png"
+                image="units/elves-wood/archer+female-bow.png:65"
             [/frame]
-            [frame]
-                image="units/elves-wood/archer+female-bow-attack4.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/archer+female-bow.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=sword
             [/filter_attack]
             [frame]
-                image="units/elves-wood/archer+female-sword.png"
+                image="units/elves-wood/archer+female-sword.png:25"
             [/frame]
             [frame]
-                image="units/elves-wood/archer+female-sword-1.png"
+                image="units/elves-wood/archer+female-sword-1.png:100"
             [/frame]
             [if]
                 hits=no
                 [frame]
-                    image="units/elves-wood/archer+female-sword-2.png"
+                    image="units/elves-wood/archer+female-sword-2.png:150"
                 [/frame]
             [/if]
             [else]
                 hits=yes
                 [frame]
-                    image="units/elves-wood/archer+female-sword-2.png"
+                    image="units/elves-wood/archer+female-sword-2.png:150"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/archer+female-sword-3.png"
+                image="units/elves-wood/archer+female-sword-[3,4].png:50"
             [/frame]
             [frame]
-                image="units/elves-wood/archer+female-sword-4.png"
+                image="units/elves-wood/archer+female-sword.png:25"
             [/frame]
-            [frame]
-                image="units/elves-wood/archer+female-sword.png"
-            [/frame]
         [/attack_anim]
     [/female]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-1.png"
+            image="units/elves-wood/archer-idle-[1~6,3~6,3~6,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/archer-idle-1.png"
-        [/frame]
     [/idle_anim]
 [/unit_type]
Index: data/core/units/elves/Shaman.cfg
===================================================================
--- data/core/units/elves/Shaman.cfg	(revision 56322)
+++ data/core/units/elves/Shaman.cfg	(working copy)
@@ -61,84 +61,42 @@
     [healing_anim]
         start_time=-200
         [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal1.png"
+            image="units/elves-wood/shaman-heal[1,2].png:55"
         [/frame]
         [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal2.png"
+            image="units/elves-wood/shaman-heal[3~9].png:55"
+            halo=halo/elven/shaman-heal-halo-[1~7].png
         [/frame]
         [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal3.png"
-            halo=halo/elven/shaman-heal-halo-1.png
+            image="units/elves-wood/shaman-heal9.png:30"
         [/frame]
-        [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal4.png"
-            halo=halo/elven/shaman-heal-halo-2.png
-        [/frame]
-        [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal5.png"
-            halo=halo/elven/shaman-heal-halo-3.png
-        [/frame]
-        [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal6.png"
-            halo=halo/elven/shaman-heal-halo-4.png
-        [/frame]
-        [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal7.png"
-            halo=halo/elven/shaman-heal-halo-5.png
-        [/frame]
-        [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal8.png"
-            halo=halo/elven/shaman-heal-halo-6.png
-        [/frame]
-        [frame]
-            duration=55
-            image="units/elves-wood/shaman-heal9.png"
-            halo=halo/elven/shaman-heal-halo-7.png
-        [/frame]
-        [frame]
-            duration=30
-            image="units/elves-wood/shaman-heal9.png"
-        [/frame]
     [/healing_anim]
     [attack_anim]
         [filter_attack]
             name=entangle
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
             offset=1.0
-            begin=-200
-            end=50
+            duration=150
             image="projectiles/entangle.png"
             image_diagonal="projectiles/entangle.png"
         [/missile_frame]
+        start_time=-450
         [frame]
-            begin=-450
-            end=-225
             image="units/elves-wood/shaman.png"
             halo=halo/elven/nature-halo[1~3].png:75
             halo_x,halo_y=0,-12
         [/frame]
         [frame]
-            begin=-225
-            end=-75
             image="units/elves-wood/shaman-attack2.png"
             halo=halo/elven/nature-halo[4,5].png:75
             halo_x,halo_y=0,-12
         [/frame]
         {SOUND:SLOW}
         [frame]
-            begin=-75
-            end=0
             image="units/elves-wood/shaman-attack2.png"
-            halo=halo/elven/nature-halo6.png
+            halo=halo/elven/nature-halo6.png:75
             sound=entangle.wav
             halo_x,halo_y=0,-12
         [/frame]
@@ -150,42 +108,33 @@
             halo_x,halo_y=0,-12
         [/frame]
         [frame]
-            begin=100
-            end=150
-            image="units/elves-wood/shaman.png"
+            image="units/elves-wood/shaman.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-175
         [frame]
-            begin=-175
-            end=-100
-            image="units/elves-wood/shaman.png"
+            image="units/elves-wood/shaman.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/shaman-attack.png"
+                image="units/elves-wood/shaman-attack.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/shaman-attack.png"
+                image="units/elves-wood/shaman-attack.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/elves-wood/shaman.png"
+            image="units/elves-wood/shaman.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Druid.cfg
===================================================================
--- data/core/units/elves/Druid.cfg	(revision 56322)
+++ data/core/units/elves/Druid.cfg	(working copy)
@@ -69,101 +69,34 @@
     [/attack]
     {DEFENSE_ANIM "units/elves-wood/druid-defend-2.png" "units/elves-wood/druid-defend-1.png" {SOUND_LIST:ELF_FEMALE_HIT} }
     [healing_anim]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/elves-wood/druid-magic-1.png"
-            halo="halo/elven/druid-healing1.png"
+            image="units/elves-wood/druid-magic-[1~4,4~1].png:75"
+            halo="halo/elven/druid-healing[1~8].png"
         [/frame]
-        [frame]
-            begin=-225
-            end=-150
-            image="units/elves-wood/druid-magic-2.png"
-            halo="halo/elven/druid-healing2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/elves-wood/druid-magic-3.png"
-            halo="halo/elven/druid-healing3.png"
-        [/frame]
-        [frame]
-            begin=-75
-            end=0
-            image="units/elves-wood/druid-magic-4.png"
-            halo="halo/elven/druid-healing4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=75
-            image="units/elves-wood/druid-magic-4.png"
-            halo="halo/elven/druid-healing5.png"
-        [/frame]
-        [frame]
-            begin=75
-            end=150
-            image="units/elves-wood/druid-magic-3.png"
-            halo="halo/elven/druid-healing6.png"
-        [/frame]
-        [frame]
-            begin=150
-            end=225
-            image="units/elves-wood/druid-magic-2.png"
-            halo="halo/elven/druid-healing7.png"
-        [/frame]
-        [frame]
-            begin=225
-            end=300
-            image="units/elves-wood/druid-magic-1.png"
-            halo="halo/elven/druid-healing8.png"
-        [/frame]
     [/healing_anim]
     [attack_anim]
         [filter_attack]
             name=thorns
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/thorns.png"
             image_diagonal="projectiles/thorns-ne.png"
         [/missile_frame]
 
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/elves-wood/druid-magic-1.png"
-            halo="halo/elven/nature-halo1.png"
+            image="units/elves-wood/druid-magic-[1~4].png:75"
+            halo="halo/elven/nature-halo[1~4].png"
             halo_x,halo_y=0,-12
         [/frame]
-        [frame]
-            begin=-225
-            end=-150
-            image="units/elves-wood/druid-magic-2.png"
-            halo="halo/elven/nature-halo2.png"
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/elves-wood/druid-magic-3.png"
-            halo="halo/elven/nature-halo3.png"
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-75
-            end=0
-            image="units/elves-wood/druid-magic-4.png"
-            halo="halo/elven/nature-halo4.png"
-            halo_x,halo_y=0,-12
-        [/frame]
 
         [if]
             hits=yes
             [frame]
-                begin=0
-                end=75
-                image="units/elves-wood/druid-magic-4.png"
+                image="units/elves-wood/druid-magic-4.png:75"
                 halo="halo/elven/nature-halo5.png"
                 sound=magic-thorns-[1,2].ogg
                 halo_x,halo_y=0,-12
@@ -172,9 +105,7 @@
         [else]
             hits=no
             [frame]
-                begin=0
-                end=75
-                image="units/elves-wood/druid-magic-4.png"
+                image="units/elves-wood/druid-magic-4.png:75"
                 halo="halo/elven/nature-halo5.png"
                 sound=magic-thorns-miss-[1,2].ogg
                 halo_x,halo_y=0,-12
@@ -182,128 +113,65 @@
         [/else]
 
         [frame]
-            begin=75
-            end=150
-            image="units/elves-wood/druid-magic-3.png"
-            halo="halo/elven/nature-halo6.png"
+            image="units/elves-wood/druid-magic-[3~1].png:75"
+            halo="halo/elven/nature-halo[6~8].png"
             halo_x,halo_y=0,-12
         [/frame]
-        [frame]
-            begin=150
-            end=225
-            image="units/elves-wood/druid-magic-2.png"
-            halo="halo/elven/nature-halo7.png"
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=225
-            end=300
-            image="units/elves-wood/druid-magic-1.png"
-            halo="halo/elven/nature-halo8.png"
-            halo_x,halo_y=0,-12
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=ensnare
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
             offset=1.0
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/entangle.png"
             image_diagonal="projectiles/entangle.png"
         [/missile_frame]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/elves-wood/druid-magic-1.png"
-            halo="halo/elven/nature-halo1.png"
+            image="units/elves-wood/druid-magic-[1~3].png:75"
+            halo="halo/elven/nature-halo[1~3].png"
             halo_x,halo_y=0,-12
         [/frame]
-        [frame]
-            begin=-225
-            end=-150
-            image="units/elves-wood/druid-magic-2.png"
-            halo="halo/elven/nature-halo2.png"
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/elves-wood/druid-magic-3.png"
-            halo="halo/elven/nature-halo3.png"
-            halo_x,halo_y=0,-12
-        [/frame]
         {SOUND:SLOW}
         [frame]
-            begin=-75
-            end=0
-            image="units/elves-wood/druid-magic-4.png"
+            image="units/elves-wood/druid-magic-4.png:75"
             halo="halo/elven/nature-halo4.png"
             halo_x,halo_y=0,-12
             sound=entangle.wav
         [/frame]
         [frame]
-            begin=0
-            end=75
-            image="units/elves-wood/druid-magic-4.png"
-            halo="halo/elven/nature-halo5.png"
+            image="units/elves-wood/druid-magic-[4~1].png:75"
+            halo="halo/elven/nature-halo[5~8].png"
             halo_x,halo_y=0,-12
         [/frame]
-        [frame]
-            begin=75
-            end=150
-            image="units/elves-wood/druid-magic-3.png"
-            halo="halo/elven/nature-halo6.png"
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=150
-            end=225
-            image="units/elves-wood/druid-magic-2.png"
-            halo="halo/elven/nature-halo7.png"
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=225
-            end=300
-            image="units/elves-wood/druid-magic-1.png"
-            halo="halo/elven/nature-halo8.png"
-            halo_x,halo_y=0,-12
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-175
         [frame]
-            begin=-175
-            end=-100
-            image="units/elves-wood/druid.png"
+            image="units/elves-wood/druid.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/druid-attack.png"
+                image="units/elves-wood/druid-attack.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/druid-attack.png"
+                image="units/elves-wood/druid-attack.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/elves-wood/druid.png"
+            image="units/elves-wood/druid.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Sorceress.cfg
===================================================================
--- data/core/units/elves/Sorceress.cfg	(revision 56322)
+++ data/core/units/elves/Sorceress.cfg	(working copy)
@@ -76,12 +76,11 @@
         [/filter_attack]
         {MISSILE_FRAME_FAERIE_FIRE}
 
+        start_time=-450
         [if]
             hits=yes
             [frame]
-                begin=-450
-                end=-375
-                image="units/elves-wood/sorceress-magic-1.png"
+                image="units/elves-wood/sorceress-magic-1.png:75"
                 sound=magic-faeriefire.ogg
 
                 halo=halo/elven/faerie-fire-halo1.png
@@ -91,9 +90,7 @@
         [else]
             hits=no
             [frame]
-                begin=-450
-                end=-375
-                image="units/elves-wood/sorceress-magic-1.png"
+                image="units/elves-wood/sorceress-magic-1.png:75"
                 sound=magic-faeriefire-miss.ogg
 
                 halo=halo/elven/faerie-fire-halo1.png
@@ -102,118 +99,41 @@
         [/else]
 
         [frame]
-            begin=-375
-            end=-300
-            image="units/elves-wood/sorceress-magic-2.png"
-            halo=halo/elven/faerie-fire-halo2.png
+            image="units/elves-wood/sorceress-magic-[2,3,3,3~1].png:75"
+            halo=halo/elven/faerie-fire-halo[2~7].png
             halo_x,halo_y=0,-28
         [/frame]
-        [frame]
-            begin=-300
-            end=-225
-            image="units/elves-wood/sorceress-magic-3.png"
-            halo=halo/elven/faerie-fire-halo3.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            begin=-225
-            end=-150
-            image="units/elves-wood/sorceress-magic-3.png"
-            halo=halo/elven/faerie-fire-halo4.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/elves-wood/sorceress-magic-3.png"
-            halo=halo/elven/faerie-fire-halo5.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            begin=-75
-            end=0
-            image="units/elves-wood/sorceress-magic-2.png"
-            halo=halo/elven/faerie-fire-halo6.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            begin=-0
-            end=75
-            image="units/elves-wood/sorceress-magic-1.png"
-            halo=halo/elven/faerie-fire-halo7.png
-            halo_x,halo_y=0,-28
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=entangle
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
             offset=1.0
-            begin=-200
-            end=50
+            duration=150
             image="projectiles/entangle.png"
             image_diagonal="projectiles/entangle.png"
         [/missile_frame]
 
+        start_time=-450
         [frame]
-            begin=-450
-            end=-375
-            image="units/elves-wood/sorceress-magic-1.png"
-            halo=halo/elven/nature-halo1.png
+            image="units/elves-wood/sorceress-magic-[1,2].png:75,units/elves-wood/sorceress-magic-3.png"
+            halo=halo/elven/nature-halo[1~5].png:75
             halo_x,halo_y=0,-28
         [/frame]
-        [frame]
-            begin=-375
-            end=-300
-            image="units/elves-wood/sorceress-magic-2.png"
-            halo=halo/elven/nature-halo2.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            begin=-300
-            end=-225
-            image="units/elves-wood/sorceress-magic-3.png"
-            halo=halo/elven/nature-halo3.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            begin=-225
-            end=-150
-            image="units/elves-wood/sorceress-magic-3.png"
-            halo=halo/elven/nature-halo4.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/elves-wood/sorceress-magic-3.png"
-            halo=halo/elven/nature-halo5.png
-            halo_x,halo_y=0,-28
-        [/frame]
         {SOUND:SLOW}
         [frame]
-            begin=-75
-            end=0
-            image="units/elves-wood/sorceress-magic-3.png"
+            image="units/elves-wood/sorceress-magic-3.png:75"
             halo=halo/elven/nature-halo6.png
             sound=entangle.wav
             halo_x,halo_y=0,-28
         [/frame]
         [frame]
-            begin=-0
-            end=75
-            image="units/elves-wood/sorceress-magic-2.png"
-            halo=halo/elven/nature-halo7.png
+            image="units/elves-wood/sorceress-magic-[2,1].png:75"
+            halo=halo/elven/nature-halo[7,8].png
             halo_x,halo_y=0,-28
         [/frame]
-        [frame]
-            begin=75
-            end=150
-            image="units/elves-wood/sorceress-magic-1.png"
-            halo=halo/elven/nature-halo8.png
-            halo_x,halo_y=0,-28
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -223,65 +143,24 @@
         offset=0.0~-0.25:150,-0.25~0.1:100,0.1~0.5:250,0.5~0.6:100, 0.6~0.6:150,0.6~0.15:200,0.15~0.0:150
 
         [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-1.png"
+            image="units/elves-wood/sorceress-melee-attack-[1~4].png:80"
         [/frame]
-        [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-3.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=80
-                image="units/elves-wood/sorceress-melee-attack-5.png"
+                image="units/elves-wood/sorceress-melee-attack-5.png:80"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=80
-                image="units/elves-wood/sorceress-melee-attack-5.png"
+                image="units/elves-wood/sorceress-melee-attack-5.png:80"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/elves-wood/sorceress-melee-attack-6.png"
+            image="units/elves-wood/sorceress-melee-attack-[6~10,1,2].png:[100*2,80*5]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/sorceress-melee-attack-7.png"
-        [/frame]
-        #600
-        [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-8.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-9.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-10.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-1.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/elves-wood/sorceress-melee-attack-2.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Enchantress.cfg
===================================================================
--- data/core/units/elves/Enchantress.cfg	(revision 56322)
+++ data/core/units/elves/Enchantress.cfg	(working copy)
@@ -78,8 +78,7 @@
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/elves-wood/enchantress-magic-1.png"
+                image="units/elves-wood/enchantress-magic-1.png:75"
                 sound=magic-faeriefire.ogg
 
                 halo=halo/elven/faerie-fire-halo1.png
@@ -89,8 +88,7 @@
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/elves-wood/enchantress-magic-1.png"
+                image="units/elves-wood/enchantress-magic-1.png:75"
                 sound=magic-faeriefire-miss.ogg
 
                 halo=halo/elven/faerie-fire-halo1.png
@@ -99,104 +97,40 @@
         [/else]
 
         [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/faerie-fire-halo2.png
+            image="units/elves-wood/enchantress-magic-[2*5,1].png:75"
+            halo=halo/elven/faerie-fire-halo[2~7].png
             halo_x,halo_y=0,-28
         [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/faerie-fire-halo3.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/faerie-fire-halo4.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/faerie-fire-halo5.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/faerie-fire-halo6.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-1.png"
-            halo=halo/elven/faerie-fire-halo7.png
-            halo_x,halo_y=0,-28
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=entangle
         [/filter_attack]
         start_time=-450
+        missile_start_time=-200
         [missile_frame]
             offset=1.0
-            begin=-200
-            end=50
+            duration=250
             image="projectiles/entangle.png"
             image_diagonal="projectiles/entangle.png"
         [/missile_frame]
         [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-1.png"
-            halo=halo/elven/nature-halo1.png
+            image="units/elves-wood/enchantress-magic-[1,2*4].png:75"
+            halo=halo/elven/nature-halo[1~5].png
             halo_x,halo_y=0,-28
         [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/nature-halo2.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/nature-halo3.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/nature-halo4.png
-            halo_x,halo_y=0,-28
-        [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/nature-halo5.png
-            halo_x,halo_y=0,-28
-        [/frame]
         {SOUND:SLOW}
         [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
+            image="units/elves-wood/enchantress-magic-2.png:75"
             halo=halo/elven/nature-halo6.png
             sound=entangle.wav
             halo_x,halo_y=0,-28
         [/frame]
         [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-2.png"
-            halo=halo/elven/nature-halo7.png
+            image="units/elves-wood/enchantress-magic-[2,1].png:75"
+            halo=halo/elven/nature-halo[7,8].png
             halo_x,halo_y=0,-28
         [/frame]
-        [frame]
-            duration=75
-            image="units/elves-wood/enchantress-magic-1.png"
-            halo=halo/elven/nature-halo8.png
-            halo_x,halo_y=0,-28
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -205,40 +139,24 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=90
-            image="units/elves-wood/enchantress-melee-1.png"
+            image="units/elves-wood/enchantress-melee-[1,2].png:90"
         [/frame]
-        [frame]
-            duration=90
-            image="units/elves-wood/enchantress-melee-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/elves-wood/enchantress-melee-3.png"
+                image="units/elves-wood/enchantress-melee-3.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/elves-wood/enchantress-melee-3.png"
+                image="units/elves-wood/enchantress-melee-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/elves-wood/enchantress-melee-4.png"
+            image="units/elves-wood/enchantress-melee-[4,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/enchantress-melee-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/elves-wood/enchantress-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Ranger.cfg
===================================================================
--- data/core/units/elves/Ranger.cfg	(revision 56322)
+++ data/core/units/elves/Ranger.cfg	(working copy)
@@ -66,97 +66,67 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/ranger-bow.png"
+            image="units/elves-wood/ranger-bow.png:65"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/ranger-bow-attack1.png"
+                image="units/elves-wood/ranger-bow-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/ranger-bow-attack1.png"
+                image="units/elves-wood/ranger-bow-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/ranger-bow-attack2.png"
+            image="units/elves-wood/ranger-bow-attack[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/ranger-bow-attack3.png"
+            image="units/elves-wood/ranger-bow.png:65"
         [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/ranger-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/ranger-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/ranger-sword.png"
+            image="units/elves-wood/ranger-sword.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-75
-            image="units/elves-wood/ranger-sword-1.png"
+            image="units/elves-wood/ranger-sword-1.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/ranger-sword-2.png"
+                image="units/elves-wood/ranger-sword-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/ranger-sword-2.png"
+                image="units/elves-wood/ranger-sword-2.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=175
-            image="units/elves-wood/ranger-sword-3.png"
+            image="units/elves-wood/ranger-sword-3.png:100"
         [/frame]
         [frame]
-            begin=175
-            end=200
-            image="units/elves-wood/ranger-sword.png"
+            image="units/elves-wood/ranger-sword.png:25"
         [/frame]
     [/attack_anim]
     [female]
@@ -184,56 +154,50 @@
                 name=bow
             [/filter_attack]
             [frame]
-                image="units/elves-wood/ranger+female-bow.png"
+                image="units/elves-wood/ranger+female-bow.png:65"
             [/frame]
             [if]
                 [frame]
-                    image="units/elves-wood/ranger+female-bow-attack1.png"
+                    image="units/elves-wood/ranger+female-bow-attack1.png:75"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/elves-wood/ranger+female-bow-attack1.png"
+                    image="units/elves-wood/ranger+female-bow-attack1.png:75"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/ranger+female-bow-attack2.png"
+                image="units/elves-wood/ranger+female-bow-attack[2~4].png:[75,100,130]"
             [/frame]
             [frame]
-                image="units/elves-wood/ranger+female-bow-attack3.png"
+                image="units/elves-wood/ranger+female-bow.png:65"
             [/frame]
-            [frame]
-                image="units/elves-wood/ranger+female-bow-attack4.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/ranger+female-bow.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=sword
             [/filter_attack]
             [frame]
-                image="units/elves-wood/ranger+female-sword.png"
+                image="units/elves-wood/ranger+female-sword.png:25"
             [/frame]
             [frame]
-                image="units/elves-wood/ranger+female-sword-1.png"
+                image="units/elves-wood/ranger+female-sword-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/elves-wood/ranger+female-sword-2.png"
+                    image="units/elves-wood/ranger+female-sword-2.png:150"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/elves-wood/ranger+female-sword-2.png"
+                    image="units/elves-wood/ranger+female-sword-2.png:150"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/ranger+female-sword-3.png"
+                image="units/elves-wood/ranger+female-sword-3.png:100"
             [/frame]
             [frame]
-                image="units/elves-wood/ranger+female-sword.png"
+                image="units/elves-wood/ranger+female-sword.png:25"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/elves/Sharpshooter.cfg
===================================================================
--- data/core/units/elves/Sharpshooter.cfg	(revision 56322)
+++ data/core/units/elves/Sharpshooter.cfg	(working copy)
@@ -59,97 +59,64 @@
         [filter_attack]
             name=longbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/sharpshooter-bow.png"
+            image="units/elves-wood/sharpshooter-bow.png:65"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/sharpshooter-bow-attack1.png"
+                image="units/elves-wood/sharpshooter-bow-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/sharpshooter-bow-attack1.png"
+                image="units/elves-wood/sharpshooter-bow-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/sharpshooter-bow-attack2.png"
+            image="units/elves-wood/sharpshooter-bow-attack[2~5].png:[75,100,130,150]"
         [/frame]
-        [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/sharpshooter-bow-attack3.png"
-        [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/sharpshooter-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=150
-            image="units/elves-wood/sharpshooter-bow-attack5.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/sharpshooter-sword.png"
+            image="units/elves-wood/sharpshooter-sword.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-75
-            image="units/elves-wood/sharpshooter-sword-1.png"
+            image="units/elves-wood/sharpshooter-sword-1.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=100
-                image="units/elves-wood/sharpshooter-sword-2.png"
+                image="units/elves-wood/sharpshooter-sword-2.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=100
-                image="units/elves-wood/sharpshooter-sword-2.png"
+                image="units/elves-wood/sharpshooter-sword-2.png:175"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/elves-wood/sharpshooter-sword-3.png"
+            image="units/elves-wood/sharpshooter-sword-3.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=200
-            image="units/elves-wood/sharpshooter-sword.png"
+            image="units/elves-wood/sharpshooter-sword.png:25"
         [/frame]
     [/attack_anim]
     [female]
@@ -177,60 +144,51 @@
                 name=longbow
             [/filter_attack]
             [frame]
-                image="units/elves-wood/sharpshooter+female-bow.png"
+                image="units/elves-wood/sharpshooter+female-bow.png:65"
             [/frame]
             [if]
                 hits=no
                 [frame]
-                    image="units/elves-wood/sharpshooter+female-bow-attack1.png"
+                    image="units/elves-wood/sharpshooter+female-bow-attack1.png:75"
                 [/frame]
             [/if]
             [else]
                 hits=yes
                 [frame]
-                    image="units/elves-wood/sharpshooter+female-bow-attack1.png"
+                    image="units/elves-wood/sharpshooter+female-bow-attack1.png:75"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/sharpshooter+female-bow-attack2.png"
+                image="units/elves-wood/sharpshooter+female-bow-attack[2~5].png:[75,100,130,150]"
             [/frame]
-            [frame]
-                image="units/elves-wood/sharpshooter+female-bow-attack3.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/sharpshooter+female-bow-attack4.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/sharpshooter+female-bow-attack5.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=sword
             [/filter_attack]
             [frame]
-                image="units/elves-wood/sharpshooter+female-sword.png"
+                image="units/elves-wood/sharpshooter+female-sword.png:25"
             [/frame]
             [frame]
-                image="units/elves-wood/sharpshooter+female-sword-1.png"
+                image="units/elves-wood/sharpshooter+female-sword-1.png:100"
             [/frame]
             [if]
                 hits=no
                 [frame]
-                    image="units/elves-wood/sharpshooter+female-sword-2.png"
+                    image="units/elves-wood/sharpshooter+female-sword-2.png:175"
                 [/frame]
             [/if]
             [else]
                 hits=yes
                 [frame]
-                    image="units/elves-wood/sharpshooter+female-sword-2.png"
+                    image="units/elves-wood/sharpshooter+female-sword-2.png:175"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/sharpshooter+female-sword-3.png"
+                image="units/elves-wood/sharpshooter+female-sword-3.png:75"
             [/frame]
             [frame]
-                image="units/elves-wood/sharpshooter+female-sword.png"
+                image="units/elves-wood/sharpshooter+female-sword.png:25"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/elves/Marshal.cfg
===================================================================
--- data/core/units/elves/Marshal.cfg	(revision 56322)
+++ data/core/units/elves/Marshal.cfg	(working copy)
@@ -6,10 +6,9 @@
     image="units/elves-wood/marshal.png"
     profile="portraits/elves/captain.png"
     [leading_anim]
+        start_time=-150
         [frame]
-            begin=-150
-            end=150
-            image="units/elves-wood/marshal-leading.png"
+            image="units/elves-wood/marshal-leading.png:300"
         [/frame]
     [/leading_anim]
     {MAGENTA_IS_THE_TEAM_COLOR}
@@ -65,124 +64,64 @@
         [filter_attack]
             name=bow
         [/filter_attack]
-        hits=yes
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/marshal-bow.png"
+            image="units/elves-wood/marshal-bow.png:65"
         [/frame]
+        [if]
+            hits=yes
+            [frame]
+                image="units/elves-wood/marshal-bow-attack1.png:75"
+                sound=bow.ogg
+            [/frame]
+        [/if]
+        [else]
+            hits=no
+            [frame]
+                image="units/elves-wood/marshal-bow-attack1.png:75"
+                sound=bow-miss.ogg
+            [/frame]
+        [/else]
         [frame]
-            begin=-380
-            end=-305
-            image="units/elves-wood/marshal-bow-attack1.png"
-            sound=bow.ogg
+            image="units/elves-wood/marshal-bow-attack[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/marshal-bow-attack2.png"
+            image="units/elves-wood/marshal-bow.png:65"
         [/frame]
-        [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/marshal-bow-attack3.png"
-        [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/marshal-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/marshal-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
-            name=bow
-        [/filter_attack]
-        hits=no
-        [missile_frame]
-            begin=-150
-            end=0
-            image="projectiles/missile-n.png"
-            image_diagonal="projectiles/missile-ne.png"
-        [/missile_frame]
-        [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/marshal-bow.png"
-        [/frame]
-        [frame]
-            begin=-380
-            end=-305
-            image="units/elves-wood/marshal-bow-attack1.png"
-            sound=bow-miss.ogg
-        [/frame]
-        [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/marshal-bow-attack2.png"
-        [/frame]
-        [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/marshal-bow-attack3.png"
-        [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/marshal-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/marshal-bow.png"
-        [/frame]
-    [/attack_anim]
-    [attack_anim]
-        [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-175
         [frame]
-            begin=-175
-            end=-100
-            image="units/elves-wood/marshal-melee-2.png"
+            image="units/elves-wood/marshal-melee-2.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=75
-                image="units/elves-wood/marshal-melee-1.png"
+                image="units/elves-wood/marshal-melee-1.png:175"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=75
-                image="units/elves-wood/marshal-melee-1.png"
+                image="units/elves-wood/marshal-melee-1.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=150
-            image="units/elves-wood/marshal-melee-2.png"
+            image="units/elves-wood/marshal-melee-2.png:75"
         [/frame]
         [frame]
-            begin=150
-            end=200
-            image="units/elves-wood/marshal.png"
+            image="units/elves-wood/marshal.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Avenger.cfg
===================================================================
--- data/core/units/elves/Avenger.cfg	(revision 56322)
+++ data/core/units/elves/Avenger.cfg	(working copy)
@@ -69,97 +69,67 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/avenger-bow.png"
+            image="units/elves-wood/avenger-bow.png:65"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/avenger-bow-attack1.png"
+                image="units/elves-wood/avenger-bow-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/avenger-bow-attack1.png"
+                image="units/elves-wood/avenger-bow-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/avenger-bow-attack2.png"
+            image="units/elves-wood/avenger-bow-attack[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/avenger-bow-attack3.png"
+            image="units/elves-wood/avenger-bow.png:65"
         [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/avenger-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/avenger-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/avenger-sword.png"
+            image="units/elves-wood/avenger-sword.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-75
-            image="units/elves-wood/avenger-sword-1.png"
+            image="units/elves-wood/avenger-sword-1.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/avenger-sword-2.png"
+                image="units/elves-wood/avenger-sword-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/avenger-sword-2.png"
+                image="units/elves-wood/avenger-sword-2.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=175
-            image="units/elves-wood/avenger-sword-3.png"
+            image="units/elves-wood/avenger-sword-3.png:100"
         [/frame]
         [frame]
-            begin=175
-            end=200
-            image="units/elves-wood/avenger-sword.png"
+            image="units/elves-wood/avenger-sword.png:25"
         [/frame]
     [/attack_anim]
     [female]
@@ -187,58 +157,52 @@
                 name=bow
             [/filter_attack]
             [frame]
-                image="units/elves-wood/avenger+female-bow.png"
+                image="units/elves-wood/avenger+female-bow.png:65"
             [/frame]
             [if]
                 [frame]
-                    image="units/elves-wood/avenger+female-bow-attack1.png"
+                    image="units/elves-wood/avenger+female-bow-attack1.png:75"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/elves-wood/avenger+female-bow-attack1.png"
+                    image="units/elves-wood/avenger+female-bow-attack1.png:75"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/avenger+female-bow-attack2.png"
+                image="units/elves-wood/avenger+female-bow-attack[2~4].png:[75,100,130]"
             [/frame]
             [frame]
-                image="units/elves-wood/avenger+female-bow-attack3.png"
+                image="units/elves-wood/avenger+female-bow.png:75"
             [/frame]
-            [frame]
-                image="units/elves-wood/avenger+female-bow-attack4.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/avenger+female-bow.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=sword
             [/filter_attack]
             [frame]
-                image="units/elves-wood/avenger+female-sword.png"
+                image="units/elves-wood/avenger+female-sword.png:25"
             [/frame]
             [frame]
-                image="units/elves-wood/avenger+female-sword-1.png"
+                image="units/elves-wood/avenger+female-sword-1.png:100"
             [/frame]
             [if]
                 hits=no
                 [frame]
-                    image="units/elves-wood/avenger+female-sword-2.png"
+                    image="units/elves-wood/avenger+female-sword-2.png:150"
                 [/frame]
             [/if]
             [else]
                 hits=yes
                 [frame]
-                    image="units/elves-wood/avenger+female-sword-2.png"
+                    image="units/elves-wood/avenger+female-sword-2.png:150"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/avenger+female-sword-3.png"
+                image="units/elves-wood/avenger+female-sword-3.png:100"
             [/frame]
             [frame]
-                image="units/elves-wood/avenger+female-sword.png"
+                image="units/elves-wood/avenger+female-sword.png:25"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/elves/Hero.cfg
===================================================================
--- data/core/units/elves/Hero.cfg	(revision 56322)
+++ data/core/units/elves/Hero.cfg	(working copy)
@@ -54,107 +54,70 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/hero-bow.png"
+            image="units/elves-wood/hero-bow.png:65"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/hero-bow-attack1.png"
+                image="units/elves-wood/hero-bow-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-380
-                end=-305
-                image="units/elves-wood/hero-bow-attack1.png"
+                image="units/elves-wood/hero-bow-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/hero-bow-attack2.png"
+            image="units/elves-wood/hero-bow-attack[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/hero-bow-attack3.png"
+            image="units/elves-wood/hero-bow.png:65"
         [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/hero-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/hero-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/hero.png"
+            image="units/elves-wood/hero.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-110
-            image="units/elves-wood/hero-melee-1.png"
+            image="units/elves-wood/hero-melee-[1,2].png:[65,35]"
         [/frame]
-        [frame]
-            begin=-110
-            end=-75
-            image="units/elves-wood/hero-melee-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/hero-melee-3.png"
+                image="units/elves-wood/hero-melee-3.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/hero-melee-3.png"
+                image="units/elves-wood/hero-melee-3.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=120
-            image="units/elves-wood/hero-melee-4.png"
+            image="units/elves-wood/hero-melee-4.png:45"
         [/frame]
         [frame]
-            begin=120
-            end=180
-            image="units/elves-wood/hero-defend.png"
+            image="units/elves-wood/hero-defend.png:60"
         [/frame]
         [frame]
-            begin=180
-            end=200
-            image="units/elves-wood/hero.png"
+            image="units/elves-wood/hero.png:20"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Champion.cfg
===================================================================
--- data/core/units/elves/Champion.cfg	(revision 56322)
+++ data/core/units/elves/Champion.cfg	(working copy)
@@ -55,139 +55,64 @@
         [filter_attack]
             name=bow
         [/filter_attack]
-        hits=yes
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/champion-bow.png"
+            image="units/elves-wood/champion-bow.png:65"
         [/frame]
+        [if]
+            hits=yes
+            [frame]
+                image="units/elves-wood/champion-bow-attack1.png:75"
+                sound=bow.ogg
+            [/frame]
+        [/if]
+        [else]
+            hits=no
+            [frame]
+                image="units/elves-wood/champion-bow-attack1.png:75"
+                sound=bow-miss.ogg
+            [/frame]
+        [/else]
         [frame]
-            begin=-380
-            end=-305
-            image="units/elves-wood/champion-bow-attack1.png"
-            sound=bow.ogg
+            image="units/elves-wood/champion-bow-attack[2~4].png:[75:100,130]"
         [/frame]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/champion-bow-attack2.png"
+            image="units/elves-wood/champion-bow.png:65"
         [/frame]
-        [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/champion-bow-attack3.png"
-        [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/champion-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/champion-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
-            name=bow
-        [/filter_attack]
-        hits=no
-        [missile_frame]
-            begin=-150
-            end=0
-            image="projectiles/missile-n.png"
-            image_diagonal="projectiles/missile-ne.png"
-        [/missile_frame]
-        [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/champion-bow.png"
-        [/frame]
-        [frame]
-            begin=-380
-            end=-305
-            image="units/elves-wood/champion-bow-attack1.png"
-            sound=bow-miss.ogg
-        [/frame]
-        [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/champion-bow-attack2.png"
-        [/frame]
-        [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/champion-bow-attack3.png"
-        [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/champion-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/champion-bow.png"
-        [/frame]
-    [/attack_anim]
-    [attack_anim]
-        [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/champion.png"
+            image="units/elves-wood/champion.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-125
-            image="units/elves-wood/champion-attack-1.png"
+            image="units/elves-wood/champion-attack-[1,2].png:50"
         [/frame]
-        [frame]
-            begin=-125
-            end=-75
-            image="units/elves-wood/champion-attack-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/champion-attack-3.png"
+                image="units/elves-wood/champion-attack-3.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/elves-wood/champion-attack-3.png"
+                image="units/elves-wood/champion-attack-3.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image="units/elves-wood/champion-attack-4.png"
+            image="units/elves-wood/champion-attack-[4~6].png:[50*2,25]"
         [/frame]
-        [frame]
-            begin=125
-            end=175
-            image="units/elves-wood/champion-attack-5.png"
-        [/frame]
-        [frame]
-            begin=175
-            end=200
-            image="units/elves-wood/champion-attack-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Sylph.cfg
===================================================================
--- data/core/units/elves/Sylph.cfg	(revision 56322)
+++ data/core/units/elves/Sylph.cfg	(working copy)
@@ -80,12 +80,11 @@
         [/filter_attack]
         {MISSILE_FRAME_FAERIE_FIRE}
 
+        start_time=-450
         [if]
             hits=yes
             [frame]
-                begin=-450
-                end=-375
-                image="units/elves-wood/sylph-magic.png"
+                image="units/elves-wood/sylph-magic.png:75"
                 sound=magic-faeriefire.ogg
 
                 halo=halo/elven/faerie-fire-halo1.png
@@ -95,9 +94,7 @@
         [else]
             hits=no
             [frame]
-                begin=-450
-                end=-375
-                image="units/elves-wood/sylph-magic.png"
+                image="units/elves-wood/sylph-magic.png:75"
                 sound=magic-faeriefire-miss.ogg
 
                 halo=halo/elven/faerie-fire-halo1.png
@@ -106,8 +103,6 @@
         [/else]
 
         [frame]
-            begin=-375
-            end=75
             image="units/elves-wood/sylph-magic.png"
             halo=halo/elven/faerie-fire-halo[2~7].png:75
             halo_x,halo_y=0,-28
@@ -117,33 +112,28 @@
         [filter_attack]
             name=gossamer
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=50
+            duration=150
             image="projectiles/web.png"
             image_diagonal="projectiles/web.png"
         [/missile_frame]
+        start_time=-450
         [frame]
-            begin=-450
-            end=-75
             image="units/elves-wood/sylph-magic.png"
             halo=halo/elven/faerie-fire-halo[1~5].png:75
             halo_x,halo_y=0,-28
         [/frame]
         {SOUND:SLOW}
         [frame]
-            begin=-75
-            end=0
             image="units/elves-wood/sylph-magic.png"
-            halo=halo/elven/faerie-fire-halo6.png
+            halo=halo/elven/faerie-fire-halo6.png:75
             sound=entangle.wav
             halo_x,halo_y=0,-28
         [/frame]
         [frame]
-            begin=-0
-            end=75
             image="units/elves-wood/sylph-magic.png"
-            halo=halo/elven/faerie-fire-halo7.png
+            halo=halo/elven/faerie-fire-halo7.png:75
             halo_x,halo_y=0,-28
         [/frame]
     [/attack_anim]
@@ -151,20 +141,9 @@
         [filter_attack]
             name=faerie touch
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/elves-wood/sylph-magic.png"
+            image="units/elves-wood/sylph-[magic,melee,magic].png:[100,200,100]"
         [/frame]
-        [frame]
-            begin=-100
-            end=100
-            image="units/elves-wood/sylph-melee.png"
-        [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/elves-wood/sylph-magic.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Lord.cfg
===================================================================
--- data/core/units/elves/Lord.cfg	(revision 56322)
+++ data/core/units/elves/Lord.cfg	(working copy)
@@ -60,95 +60,59 @@
         [filter_attack]
             name=faerie fire
         [/filter_attack]
-        hits=yes
         {MISSILE_FRAME_FAERIE_FIRE}
 
-        [frame]
-            begin=-450
-            end=-375
-            image="units/elves-wood/lord-magic.png"
-            sound=magic-faeriefire.ogg
+        start_time=-450
+        [if]
+            hits=yes
+            [frame]
+                image="units/elves-wood/lord-magic.png:75"
+                sound=magic-faeriefire.ogg
 
-            halo=halo/elven/faerie-fire-halo1.png
-            halo_x,halo_y=-19,-13
-        [/frame]
-        [frame]
-            begin=-375
-            end=-300
-            image="units/elves-wood/lord-magic.png"
-            halo=halo/elven/faerie-fire-halo2.png
-            halo_x,halo_y=-19,-13
-        [/frame]
-        [frame]
-            begin=-300
-            end=75
-            image="units/elves-wood/lord-magic-1.png"
-            halo=halo/elven/faerie-fire-halo[3~7].png:75
-            halo_x,halo_y=-19,-13
-        [/frame]
-    [/attack_anim]
-    [attack_anim]
-        [filter_attack]
-            name=faerie fire
-        [/filter_attack]
-        hits=no
-        {MISSILE_FRAME_FAERIE_FIRE}
+                halo=halo/elven/faerie-fire-halo1.png
+                halo_x,halo_y=-19,-13
+            [/frame]
+        [/if]
+        [else]
+            hits=no
+            [frame]
+                image="units/elves-wood/lord-magic.png:75"
+                sound=magic-faeriefire-miss.ogg
 
+                halo=halo/elven/faerie-fire-halo1.png
+                halo_x,halo_y=-19,-13
+            [/frame]
+        [/else]
         [frame]
-            begin=-450
-            end=-375
-            image="units/elves-wood/lord-magic.png"
-            sound=magic-faeriefire-miss.ogg
-
-            halo=halo/elven/faerie-fire-halo1.png
+            image="units/elves-wood/lord-magic.png:75,units/elves-wood/lord-magic-1.png"
+            halo=halo/elven/faerie-fire-halo[2~7].png:75
             halo_x,halo_y=-19,-13
         [/frame]
-        [frame]
-            begin=-375
-            end=-300
-            image="units/elves-wood/lord-magic.png"
-            halo=halo/elven/faerie-fire-halo2.png
-            halo_x,halo_y=-19,-13
-        [/frame]
-        [frame]
-            begin=-300
-            end=75
-            image="units/elves-wood/lord-magic-1.png"
-            halo=halo/elven/faerie-fire-halo[3~7].png:75
-            halo_x,halo_y=-19,-13
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/elves-wood/lord.png"
+            image="units/elves-wood/lord.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=125
-                image="units/elves-wood/lord-melee.png"
+                image="units/elves-wood/lord-melee.png:225"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=125
-                image="units/elves-wood/lord-melee.png"
+                image="units/elves-wood/lord-melee.png:225"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=125
-            end=200
-            image="units/elves-wood/lord.png"
+            image="units/elves-wood/lord.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Rider.cfg
===================================================================
--- data/core/units/elves/Rider.cfg	(revision 56322)
+++ data/core/units/elves/Rider.cfg	(working copy)
@@ -63,98 +63,74 @@
     [/attack]
     {DEFENSE_ANIM "units/elves-wood/rider-defend.png" "units/elves-wood/rider.png" {SOUND_LIST:HORSE_HIT} }
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/elves-wood/rider-moving.png"
+            image="units/elves-wood/rider-moving.png:150"
         [/frame]
     [/movement_anim]
     [attack_anim]
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-500
         [if]
             hits=yes
             [frame]
-                begin=-500
-                end=-400
-                image="units/elves-wood/rider-attack1.png"
+                image="units/elves-wood/rider-attack1.png:100"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-500
-                end=-400
-                image="units/elves-wood/rider-attack1.png"
+                image="units/elves-wood/rider-attack1.png:100"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-400
-            end=-150
-            image="units/elves-wood/rider-attack2.png"
+            image="units/elves-wood/rider-attack[2,1].png:[250,100]"
         [/frame]
         [frame]
-            begin=-150
-            end=-50
-            image="units/elves-wood/rider-attack1.png"
+            image="units/elves-wood/rider-moving.png:150"
         [/frame]
-        [frame]
-            begin=-50
-            end=100
-            image="units/elves-wood/rider-moving.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/rider.png"
+            image="units/elves-wood/rider.png:25"
             sound=horse-elf-canter.wav
         [/frame]
         [frame]
-            begin=-175
-            end=-100
-            image="units/elves-wood/rider-melee-2.png"
+            image="units/elves-wood/rider-melee-2.png:75"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/rider-melee-1.png"
+                image="units/elves-wood/rider-melee-1.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/rider-melee-1.png"
+                image="units/elves-wood/rider-melee-1.png:200"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/elves-wood/rider-moving.png"
+            image="units/elves-wood/rider-moving.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=200
-            image="units/elves-wood/rider.png"
+            image="units/elves-wood/rider.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Marksman.cfg
===================================================================
--- data/core/units/elves/Marksman.cfg	(revision 56322)
+++ data/core/units/elves/Marksman.cfg	(working copy)
@@ -32,31 +32,10 @@
         image="portraits/elves/transparent/marksman.png"
     [/portrait]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=160
-            image="units/elves-wood/marksman-die-1.png"
+            image="units/elves-wood/marksman-die-[1~5].png:[160,220,180,200,220]"
         [/frame]
-        [frame]
-            begin=160
-            end=400
-            image="units/elves-wood/marksman-die-2.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=580
-            image="units/elves-wood/marksman-die-3.png"
-        [/frame]
-        [frame]
-            begin=580
-            end=780
-            image="units/elves-wood/marksman-die-4.png"
-        [/frame]
-        [frame]
-            begin=780
-            end=1000
-            image="units/elves-wood/marksman-die-5.png"
-        [/frame]
     [/death]
     [attack]
         name=sword
@@ -85,97 +64,67 @@
         [filter_attack]
             name=longbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-475
         [frame]
-            begin=-475
-            end=-400
-            image="units/elves-wood/marksman-bow.png"
+            image="units/elves-wood/marksman-bow.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-400
-                end=-325
-                image="units/elves-wood/marksman-bow-attack1.png"
+                image="units/elves-wood/marksman-bow-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-400
-                end=-325
-                image="units/elves-wood/marksman-bow-attack1.png"
+                image="units/elves-wood/marksman-bow-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-325
-            end=-250
-            image="units/elves-wood/marksman-bow-attack2.png"
+            image="units/elves-wood/marksman-bow-attack[2~4].png:[75,100,150]"
         [/frame]
         [frame]
-            begin=-250
-            end=-150
-            image="units/elves-wood/marksman-bow-attack3.png"
+            image="units/elves-wood/marksman-bow.png:75"
         [/frame]
-        [frame]
-            begin=-150
-            end=0
-            image="units/elves-wood/marksman-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=75
-            image="units/elves-wood/marksman-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/marksman-sword.png"
+            image="units/elves-wood/marksman-sword.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-75
-            image="units/elves-wood/marksman-sword-1.png"
+            image="units/elves-wood/marksman-sword-1.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=100
-                image="units/elves-wood/marksman-sword-2.png"
+                image="units/elves-wood/marksman-sword-2.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=100
-                image="units/elves-wood/marksman-sword-2.png"
+                image="units/elves-wood/marksman-sword-2.png:175"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/elves-wood/marksman-sword-3.png"
+            image="units/elves-wood/marksman-sword-3.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=200
-            image="units/elves-wood/marksman-sword.png"
+            image="units/elves-wood/marksman-sword.png:25"
         [/frame]
     [/attack_anim]
     [female]
@@ -203,78 +152,60 @@
         [/portrait]
         [death]
             [frame]
-                image="units/elves-wood/marksman+female-die-1.png"
+                image="units/elves-wood/marksman+[female-die-1,female-die-2,female-die-3,die-4,die-5].png:[160,220,180,200,220]"
             [/frame]
-            [frame]
-                image="units/elves-wood/marksman+female-die-2.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/marksman+female-die-3.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/marksman-die-4.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/marksman-die-5.png"
-            [/frame]
         [/death]
         [attack_anim]
             [filter_attack]
                 name=longbow
             [/filter_attack]
             [frame]
-                image="units/elves-wood/marksman+female-bow.png"
+                image="units/elves-wood/marksman+female-bow.png:75"
             [/frame]
             [if]
                 [frame]
-                    image="units/elves-wood/marksman+female-bow-attack1.png"
+                    image="units/elves-wood/marksman+female-bow-attack1.png:75"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/elves-wood/marksman+female-bow-attack1.png"
+                    image="units/elves-wood/marksman+female-bow-attack1.png:75"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/marksman+female-bow-attack2.png"
+                image="units/elves-wood/marksman+female-bow-attack[2~4].png:[75,100,150]"
             [/frame]
             [frame]
-                image="units/elves-wood/marksman+female-bow-attack3.png"
+                image="units/elves-wood/marksman+female-bow.png:75"
             [/frame]
-            [frame]
-                image="units/elves-wood/marksman+female-bow-attack4.png"
-            [/frame]
-            [frame]
-                image="units/elves-wood/marksman+female-bow.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=sword
             [/filter_attack]
             [frame]
-                image="units/elves-wood/marksman+female-sword.png"
+                image="units/elves-wood/marksman+female-sword.png:25"
             [/frame]
             [frame]
-                image="units/elves-wood/marksman+female-sword-1.png"
+                image="units/elves-wood/marksman+female-sword-1.png:100"
             [/frame]
             [if]
                 hits=no
                 [frame]
-                    image="units/elves-wood/marksman+female-sword-2.png"
+                    image="units/elves-wood/marksman+female-sword-2.png:175"
                 [/frame]
             [/if]
             [else]
                 hits=yes
                 [frame]
-                    image="units/elves-wood/marksman+female-sword-2.png"
+                    image="units/elves-wood/marksman+female-sword-2.png:175"
                 [/frame]
             [/else]
             [frame]
-                image="units/elves-wood/marksman+female-sword-3.png"
+                image="units/elves-wood/marksman+female-sword-3.png:75"
             [/frame]
             [frame]
-                image="units/elves-wood/marksman+female-sword.png"
+                image="units/elves-wood/marksman+female-sword.png:25"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/elves/Shyde.cfg
===================================================================
--- data/core/units/elves/Shyde.cfg	(revision 56322)
+++ data/core/units/elves/Shyde.cfg	(working copy)
@@ -75,237 +75,88 @@
     {DEFENSE_ANIM_RANGE "units/elves-wood/shyde-defend.png" "units/elves-wood/shyde.png" {SOUND_LIST:ELF_FEMALE_HIT} melee }
     {DEFENSE_ANIM_ELVEN_RANGE "units/elves-wood/shyde-defend.png" "units/elves-wood/shyde.png" {SOUND_LIST:ELF_FEMALE_HIT} ranged }
     [healing_anim]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-145
-            image="units/elves-wood/shyde-healing1.png"
+            image="units/elves-wood/shyde-healing[1~12].png:55"
         [/frame]
-        [frame]
-            begin=-145
-            end=-90
-            image="units/elves-wood/shyde-healing2.png"
-        [/frame]
-        [frame]
-            begin=-90
-            end=-35
-            image="units/elves-wood/shyde-healing3.png"
-        [/frame]
-        [frame]
-            begin=-35
-            end=20
-            image="units/elves-wood/shyde-healing4.png"
-        [/frame]
-        [frame]
-            begin=20
-            end=75
-            image="units/elves-wood/shyde-healing5.png"
-        [/frame]
-        [frame]
-            begin=75
-            end=130
-            image="units/elves-wood/shyde-healing6.png"
-        [/frame]
-        [frame]
-            begin=130
-            end=185
-            image="units/elves-wood/shyde-healing7.png"
-        [/frame]
-        [frame]
-            begin=185
-            end=240
-            image="units/elves-wood/shyde-healing8.png"
-        [/frame]
-        [frame]
-            begin=240
-            end=295
-            image="units/elves-wood/shyde-healing9.png"
-        [/frame]
-        [frame]
-            begin=295
-            end=350
-            image="units/elves-wood/shyde-healing10.png"
-        [/frame]
-        [frame]
-            begin=350
-            end=405
-            image="units/elves-wood/shyde-healing11.png"
-        [/frame]
-        [frame]
-            begin=405
-            end=460
-            image="units/elves-wood/shyde-healing12.png"
-        [/frame]
     [/healing_anim]
     [attack_anim]
         [filter_attack]
             name=thorns
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/thorns.png"
             image_diagonal="projectiles/thorns-ne.png"
         [/missile_frame]
+        start_time=-250
         [frame]
-            begin=-450
-            end=-375
             image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo1.png
+            halo=halo/elven/nature-halo[1~5].png:75
             halo_x,halo_y=0,-12
         [/frame]
-        [frame]
-            begin=-375
-            end=-300
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo2.png
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-300
-            end=-225
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo3.png
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-225
-            end=-150
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo4.png
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo5.png
-            halo_x,halo_y=0,-12
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=0
                 image="units/elves-wood/shyde-ftouch-attack3.png"
                 sound=magic-thorns-[1,2].ogg
-                halo=halo/elven/nature-halo6.png
+                halo=halo/elven/nature-halo6.png:75
                 halo_x,halo_y=0,-12
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=0
                 image="units/elves-wood/shyde-ftouch-attack3.png"
                 sound=magic-thorns-miss-[1,2].ogg
-                halo=halo/elven/nature-halo6.png
+                halo=halo/elven/nature-halo6.png:75
                 halo_x,halo_y=0,-12
             [/frame]
         [/else]
         [frame]
-            begin=-0
-            end=75
             image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo7.png
+            halo=halo/elven/nature-halo[7,8].png:75
             halo_x,halo_y=0,-12
         [/frame]
-        [frame]
-            begin=75
-            end=150
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo8.png
-            halo_x,halo_y=0,-12
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=ensnare
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
             offset=1.0
-            begin=-200
-            end=50
+            duration=150
             image="projectiles/entangle.png"
             image_diagonal="projectiles/entangle.png"
         [/missile_frame]
+        start_time=-450
         [frame]
-            begin=-450
-            end=-375
             image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo1.png
+            halo=halo/elven/nature-halo[1~5].png:75
             halo_x,halo_y=0,-12
         [/frame]
-        [frame]
-            begin=-375
-            end=-300
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo2.png
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-300
-            end=-225
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo3.png
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-225
-            end=-150
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo4.png
-            halo_x,halo_y=0,-12
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo5.png
-            halo_x,halo_y=0,-12
-        [/frame]
         {SOUND:SLOW}
         [frame]
-            begin=-75
-            end=0
             image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo6.png
+            halo=halo/elven/nature-halo6.png:75
             sound=entangle.wav
             halo_x,halo_y=0,-12
         [/frame]
         [frame]
-            begin=-0
-            end=75
             image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo7.png
+            halo=halo/elven/nature-halo[7,8].png:75
             halo_x,halo_y=0,-12
         [/frame]
-        [frame]
-            begin=75
-            end=150
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-            halo=halo/elven/nature-halo8.png
-            halo_x,halo_y=0,-12
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=faerie touch
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/elves-wood/shyde-ftouch-attack1.png"
+            image="units/elves-wood/shyde-ftouch-attack[1~3].png:[100,200,100]"
         [/frame]
-        [frame]
-            begin=-100
-            end=100
-            image="units/elves-wood/shyde-ftouch-attack2.png"
-        [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/elves-wood/shyde-ftouch-attack3.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/elves/Captain.cfg
===================================================================
--- data/core/units/elves/Captain.cfg	(revision 56322)
+++ data/core/units/elves/Captain.cfg	(working copy)
@@ -6,10 +6,9 @@
     image="units/elves-wood/captain.png"
     profile="portraits/elves/captain.png"
     [leading_anim]
+        start_time=-150
         [frame]
-            begin=-150
-            end=150
-            image="units/elves-wood/captain-leading.png"
+            image="units/elves-wood/captain-leading.png:300"
         [/frame]
     [/leading_anim]
     {MAGENTA_IS_THE_TEAM_COLOR}
@@ -64,129 +63,67 @@
         [filter_attack]
             name=bow
         [/filter_attack]
-        hits=yes
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/captain-bow.png"
+            image="units/elves-wood/captain-bow.png:65"
         [/frame]
+        [if]
+            hits=yes
+            [frame]
+                image="units/elves-wood/captain-bow-attack1.png:75"
+                sound=bow.ogg
+            [/frame]
+        [/if]
+        [else]
+            hits=no
+            [frame]
+                image="units/elves-wood/captain-bow-attack1.png:75"
+                sound=bow-miss.ogg
+            [/frame]
+        [/else]
         [frame]
-            begin=-380
-            end=-305
-            image="units/elves-wood/captain-bow-attack1.png"
-            sound=bow.ogg
+            image="units/elves-wood/captain-bow-attack[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/captain-bow-attack2.png"
+            image="units/elves-wood/captain-bow.png:65"
         [/frame]
-        [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/captain-bow-attack3.png"
-        [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/captain-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/captain-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
-            name=bow
-        [/filter_attack]
-        hits=no
-        [missile_frame]
-            begin=-150
-            end=0
-            image="projectiles/missile-n.png"
-            image_diagonal="projectiles/missile-ne.png"
-        [/missile_frame]
-        [frame]
-            begin=-445
-            end=-380
-            image="units/elves-wood/captain-bow.png"
-        [/frame]
-        [frame]
-            begin=-380
-            end=-305
-            image="units/elves-wood/captain-bow-attack1.png"
-            sound=bow-miss.ogg
-        [/frame]
-        [frame]
-            begin=-305
-            end=-230
-            image="units/elves-wood/captain-bow-attack2.png"
-        [/frame]
-        [frame]
-            begin=-230
-            end=-130
-            image="units/elves-wood/captain-bow-attack3.png"
-        [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/elves-wood/captain-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/elves-wood/captain-bow.png"
-        [/frame]
-    [/attack_anim]
-    [attack_anim]
-        [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/elves-wood/captain.png"
+            image="units/elves-wood/captain.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-100
-            image="units/elves-wood/captain-melee-2.png"
+            image="units/elves-wood/captain-melee-2.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/captain-melee-1.png"
+                image="units/elves-wood/captain-melee-1.png:200"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/elves-wood/captain-melee-1.png"
+                image="units/elves-wood/captain-melee-1.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/elves-wood/captain-melee-2.png"
+            image="units/elves-wood/captain-melee-2.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=225
-            image="units/elves-wood/captain.png"
+            image="units/elves-wood/captain.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/bats/Bat_Dread.cfg
===================================================================
--- data/core/units/bats/Bat_Dread.cfg	(revision 56322)
+++ data/core/units/bats/Bat_Dread.cfg	(working copy)
@@ -59,31 +59,23 @@
         [/if]
         start_time=-126
         [frame]
-            duration=1
-            image="units/undead/dreadbat-se-3.png"
+            image="units/undead/dreadbat-se-[3,4].png:[1,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/undead/dreadbat-se-4.png"
-        [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image="units/undead/dreadbat-se-4.png"
+                image="units/undead/dreadbat-se-4.png:150"
                 sound={SOUND_LIST:BAT_HIT}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image="units/undead/dreadbat-se-4.png"
+                image="units/undead/dreadbat-se-4.png:150"
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image="units/undead/dreadbat-se-3.png"
+            image="units/undead/dreadbat-se-3.png:1"
         [/frame]
     [/defend]
     [defend]
@@ -94,31 +86,23 @@
         [/if]
         start_time=-126
         [frame]
-            duration=1
-            image="units/undead/dreadbat-ne-3.png"
+            image="units/undead/dreadbat-ne-[3,4].png:[1,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/undead/dreadbat-ne-4.png"
-        [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image="units/undead/dreadbat-ne-4.png"
+                image="units/undead/dreadbat-ne-4.png:150"
                 sound={SOUND_LIST:BAT_HIT}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image="units/undead/dreadbat-ne-4.png"
+                image="units/undead/dreadbat-ne-4.png:150"
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image="units/undead/dreadbat-ne-3.png"
+            image="units/undead/dreadbat-ne-3.png:1"
         [/frame]
     [/defend]
     [standing_anim]
@@ -126,146 +110,30 @@
         direction=s,se,sw
         start_time=0
         [frame]
-            duration=50
-            image="units/undead/dreadbat-se-3.png"
+            image="units/undead/dreadbat-se-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/dreadbat-se-1.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/undead/dreadbat-se-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-se-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/dreadbat-se-5.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-se-4.png"
-        [/frame]
     [/standing_anim]
     [standing_anim]
         layer=60
         direction=n,ne,nw
         start_time=0
         [frame]
-            duration=50
-            image="units/undead/dreadbat-ne-3.png"
+            image="units/undead/dreadbat-ne-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/dreadbat-ne-1.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/undead/dreadbat-ne-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-ne-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/dreadbat-ne-5.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-ne-4.png"
-        [/frame]
     [/standing_anim]
     [movement_anim]
         direction=s,se,sw
         start_time=0
         [frame]
-            duration=50
-            image="units/undead/dreadbat-se-3.png"
+            image="units/undead/dreadbat-se-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/dreadbat-se-1.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/undead/dreadbat-se-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-se-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/dreadbat-se-5.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-se-4.png"
-        [/frame]
     [/movement_anim]
     [movement_anim]
         direction=n,ne,nw
         start_time=0
         [frame]
-            duration=50
-            image="units/undead/dreadbat-ne-3.png"
+            image="units/undead/dreadbat-ne-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/dreadbat-ne-1.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/undead/dreadbat-ne-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-ne-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/dreadbat-ne-5.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/dreadbat-ne-4.png"
-        [/frame]
     [/movement_anim]
     [attack_anim]
         [filter_attack]
@@ -275,54 +143,32 @@
         offset=0.0~0.9:200,0.9~0.0:160
         start_time=-200
         [frame]
-            duration=30
-            image="units/undead/dreadbat-se-3.png"
+            image="units/undead/dreadbat-se-[3,2].png:30"
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/dreadbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/undead/dreadbat-se-1.png"
+            image="units/undead/dreadbat-se-1.png:30"
             sound=bat-flapping.wav
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/dreadbat-se-2.png"
+            image="units/undead/dreadbat-se-[2,3].png:30"
         [/frame]
-        [frame]
-            duration=30
-            image="units/undead/dreadbat-se-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=70
-                image="units/undead/dreadbat-se-4.png"
+                image="units/undead/dreadbat-se-4.png:70"
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=70
-                image="units/undead/dreadbat-se-4.png"
+                image="units/undead/dreadbat-se-4.png:70"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/undead/dreadbat-se-3.png"
+            image="units/undead/dreadbat-se-[3,2,3].png:[50*2,40]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/undead/dreadbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=40
-            image="units/undead/dreadbat-se-3.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -332,53 +178,31 @@
         offset=0.0~0.9:200,0.9~0.0:160
         start_time=-200
         [frame]
-            duration=30
-            image="units/undead/dreadbat-ne-3.png"
+            image="units/undead/dreadbat-ne-[3,2].png:30"
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/dreadbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/undead/dreadbat-ne-1.png"
+            image="units/undead/dreadbat-ne-1.png:30"
             sound=bat-flapping.wav
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/dreadbat-ne-2.png"
+            image="units/undead/dreadbat-ne-[2,3].png:30"
         [/frame]
-        [frame]
-            duration=30
-            image="units/undead/dreadbat-ne-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=70
-                image="units/undead/dreadbat-ne-4.png"
+                image="units/undead/dreadbat-ne-4.png:70"
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=70
-                image="units/undead/dreadbat-ne-4.png"
+                image="units/undead/dreadbat-ne-4.png:70"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/undead/dreadbat-ne-3.png"
+            image="units/undead/dreadbat-ne-[3,2,3].png:[50*2,40]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/undead/dreadbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=40
-            image="units/undead/dreadbat-ne-3.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/bats/Bat_Blood.cfg
===================================================================
--- data/core/units/bats/Bat_Blood.cfg	(revision 56322)
+++ data/core/units/bats/Bat_Blood.cfg	(working copy)
@@ -47,31 +47,23 @@
         [/if]
         start_time=-126
         [frame]
-            duration=1
-            image="units/undead/bloodbat-se-3.png"
+            image="units/undead/bloodbat-se-[3,4].png:[1,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/undead/bloodbat-se-4.png"
-        [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image="units/undead/bloodbat-se-4.png"
+                image="units/undead/bloodbat-se-4.png:150"
                 sound={SOUND_LIST:BAT_HIT}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image="units/undead/bloodbat-se-4.png"
+                image="units/undead/bloodbat-se-4.png:150"
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image="units/undead/bloodbat-se-3.png"
+            image="units/undead/bloodbat-se-3.png:1"
         [/frame]
     [/defend]
     [defend]
@@ -82,31 +74,23 @@
         [/if]
         start_time=-126
         [frame]
-            duration=1
-            image="units/undead/bloodbat-ne-3.png"
+            image="units/undead/bloodbat-ne-[3,4].png:[1,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/undead/bloodbat-ne-4.png"
-        [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image="units/undead/bloodbat-ne-4.png"
+                image="units/undead/bloodbat-ne-4.png:150"
                 sound={SOUND_LIST:BAT_HIT}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image="units/undead/bloodbat-ne-4.png"
+                image="units/undead/bloodbat-ne-4.png:150"
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image="units/undead/bloodbat-ne-3.png"
+            image="units/undead/bloodbat-ne-3.png:1"
         [/frame]
     [/defend]
 
@@ -115,74 +99,16 @@
         direction=s,se,sw
         start_time=0
         [frame]
-            duration=50
-            image="units/undead/bloodbat-se-3.png"
+            image="units/undead/bloodbat-se-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bloodbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/bloodbat-se-1.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bloodbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/undead/bloodbat-se-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bloodbat-se-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/bloodbat-se-5.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bloodbat-se-4.png"
-        [/frame]
     [/standing_anim]
     [standing_anim]
         direction=n,ne,nw
         layer=60
         start_time=0
         [frame]
-            duration=50
-            image="units/undead/bloodbat-ne-3.png"
+            image="units/undead/bloodbat-ne-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bloodbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/bloodbat-ne-1.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bloodbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/undead/bloodbat-ne-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bloodbat-ne-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/bloodbat-ne-5.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bloodbat-ne-4.png"
-        [/frame]
     [/standing_anim]
 
     [attack]
@@ -206,54 +132,32 @@
         offset=0.0~0.9:200,0.9~0.0:160
         start_time=-200
         [frame]
-            duration=30
-            image="units/undead/bloodbat-se-3.png"
+            image="units/undead/bloodbat-se-[3,2].png:30"
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/bloodbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/undead/bloodbat-se-1.png"
+            image="units/undead/bloodbat-se-1.png:30"
             sound=bat-flapping.wav
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/bloodbat-se-2.png"
+            image="units/undead/bloodbat-se-[2,3].png:30"
         [/frame]
-        [frame]
-            duration=30
-            image="units/undead/bloodbat-se-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=70
-                image="units/undead/bloodbat-se-4.png"
+                image="units/undead/bloodbat-se-4.png:70"
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=70
-                image="units/undead/bloodbat-se-4.png"
+                image="units/undead/bloodbat-se-4.png:70"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/undead/bloodbat-se-3.png"
+            image="units/undead/bloodbat-se-[3,2,3].png:[50*2,40]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/undead/bloodbat-se-2.png"
-        [/frame]
-        [frame]
-            duration=40
-            image="units/undead/bloodbat-se-3.png"
-        [/frame]
     [/attack_anim]
 
     [attack_anim]
@@ -264,53 +168,31 @@
         offset=0.0~0.9:200,0.9~0.0:160
         start_time=-200
         [frame]
-            duration=30
-            image="units/undead/bloodbat-ne-3.png"
+            image="units/undead/bloodbat-ne-[3,2].png:30"
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/bloodbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/undead/bloodbat-ne-1.png"
+            image="units/undead/bloodbat-ne-1.png:30"
             sound=bat-flapping.wav
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/bloodbat-ne-2.png"
+            image="units/undead/bloodbat-ne-[2,3].png:30"
         [/frame]
-        [frame]
-            duration=30
-            image="units/undead/bloodbat-ne-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=70
-                image="units/undead/bloodbat-ne-4.png"
+                image="units/undead/bloodbat-ne-4.png:70"
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=70
-                image="units/undead/bloodbat-ne-4.png"
+                image="units/undead/bloodbat-ne-4.png:70"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/undead/bloodbat-ne-3.png"
+            image="units/undead/bloodbat-ne-[3,2,3].png:[50*2,40]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/undead/bloodbat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=40
-            image="units/undead/bloodbat-ne-3.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/bats/Bat_Vampire.cfg
===================================================================
--- data/core/units/bats/Bat_Vampire.cfg	(revision 56322)
+++ data/core/units/bats/Bat_Vampire.cfg	(working copy)
@@ -47,31 +47,23 @@
         [/if]
         start_time=-126
         [frame]
-            duration=1
-            image="units/undead/bat-se-3.png"
+            image="units/undead/bat-se-[3,4].png:[1,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/undead/bat-se-4.png"
-        [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image="units/undead/bat-se-4.png"
+                image="units/undead/bat-se-4.png:150"
                 sound={SOUND_LIST:BAT_HIT}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image="units/undead/bat-se-4.png"
+                image="units/undead/bat-se-4.png:150"
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image="units/undead/bat-se-3.png"
+            image="units/undead/bat-se-3.png:1"
         [/frame]
     [/defend]
     [defend]
@@ -82,31 +74,23 @@
         [/if]
         start_time=-126
         [frame]
-            duration=1
-            image="units/undead/bat-ne-3.png"
+            image="units/undead/bat-ne-[3,4].png:[1,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/undead/bat-ne-4.png"
-        [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image="units/undead/bat-ne-4.png"
+                image="units/undead/bat-ne-4.png:150"
                 sound={SOUND_LIST:BAT_HIT}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image="units/undead/bat-ne-4.png"
+                image="units/undead/bat-ne-4.png:150"
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image="units/undead/bat-ne-3.png"
+            image="units/undead/bat-ne-3.png:1"
         [/frame]
     [/defend]
 
@@ -115,74 +99,16 @@
         start_time=0
         layer=60
         [frame]
-            duration=50
-            image="units/undead/bat-se-3.png"
+            image="units/undead/bat-se-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bat-se-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/bat-se-1.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bat-se-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/undead/bat-se-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bat-se-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/bat-se-5.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bat-se-4.png"
-        [/frame]
     [/standing_anim]
     [standing_anim]
         layer=60
         direction=n,ne,nw
         start_time=0
         [frame]
-            duration=50
-            image="units/undead/bat-ne-3.png"
+            image="units/undead/bat-ne-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
         [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/bat-ne-1.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/undead/bat-ne-3.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bat-ne-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/undead/bat-ne-5.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/undead/bat-ne-4.png"
-        [/frame]
     [/standing_anim]
 
     [attack]
@@ -205,54 +131,32 @@
         offset=0.0~0.9:200,0.9~0.0:160
         start_time=-200
         [frame]
-            duration=30
-            image="units/undead/bat-se-3.png"
+            image="units/undead/bat-se-[3,2].png:30"
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/bat-se-2.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/undead/bat-se-1.png"
+            image="units/undead/bat-se-1.png:30"
             sound=bat-flapping.wav
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/bat-se-2.png"
+            image="units/undead/bat-se-[2,3].png:30"
         [/frame]
-        [frame]
-            duration=30
-            image="units/undead/bat-se-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=70
-                image="units/undead/bat-se-4.png"
+                image="units/undead/bat-se-4.png:70"
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=70
-                image="units/undead/bat-se-4.png"
+                image="units/undead/bat-se-4.png:70"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/undead/bat-se-3.png"
+            image="units/undead/bat-se-[3,2,3].png:[50*2,40]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/undead/bat-se-2.png"
-        [/frame]
-        [frame]
-            duration=40
-            image="units/undead/bat-se-3.png"
-        [/frame]
     [/attack_anim]
 
     [attack_anim]
@@ -263,53 +167,31 @@
         offset=0.0~0.9:200,0.9~0.0:160
         start_time=-200
         [frame]
-            duration=30
-            image="units/undead/bat-ne-3.png"
+            image="units/undead/bat-ne-[3,2].png:30"
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/bat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=30
-            image="units/undead/bat-ne-1.png"
+            image="units/undead/bat-ne-1.png:30"
             sound=bat-flapping.wav
         [/frame]
         [frame]
-            duration=30
-            image="units/undead/bat-ne-2.png"
+            image="units/undead/bat-ne-[2,3].png:30"
         [/frame]
-        [frame]
-            duration=30
-            image="units/undead/bat-ne-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=70
-                image="units/undead/bat-ne-4.png"
+                image="units/undead/bat-ne-4.png:70"
                 sound=bite-small.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=70
-                image="units/undead/bat-ne-4.png"
+                image="units/undead/bat-ne-4.png:70"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/undead/bat-ne-3.png"
+            image="units/undead/bat-ne-[3,2,3].png:[50*2,40]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/undead/bat-ne-2.png"
-        [/frame]
-        [frame]
-            duration=40
-            image="units/undead/bat-ne-3.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/nagas/Warrior.cfg
===================================================================
--- data/core/units/nagas/Warrior.cfg	(revision 56322)
+++ data/core/units/nagas/Warrior.cfg	(working copy)
@@ -51,41 +51,25 @@
         offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=130
-            image="units/nagas/warrior-melee-1.png"
+            image="units/nagas/warrior-melee-1.png:130"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/nagas/warrior-melee-2.png"
+                image="units/nagas/warrior-melee-2.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/nagas/warrior-melee-2.png"
+                image="units/nagas/warrior-melee-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/nagas/warrior-melee-3.png"
+            image="units/nagas/warrior-melee-[3~6].png:[100,90,80,70]"
         [/frame]
-        [frame]
-            duration=90
-            image="units/nagas/warrior-melee-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/nagas/warrior-melee-5.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/nagas/warrior-melee-6.png"
-        [/frame]
     [/attack_anim]
     [female]
         name= _ "Nagini Warrior"
Index: data/core/units/nagas/Fighter.cfg
===================================================================
--- data/core/units/nagas/Fighter.cfg	(revision 56322)
+++ data/core/units/nagas/Fighter.cfg	(working copy)
@@ -36,65 +36,8 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/nagas/fighter-idle-1.png"
+            image="units/nagas/fighter-idle-[1~8,7,8,7,8,6,5,1].png:[100*2,350,450,250*2,60*6,350*2,200]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/nagas/fighter-idle-2.png"
-        [/frame]
-        [frame]
-            duration=350
-            image="units/nagas/fighter-idle-3.png"
-        [/frame]
-        [frame]
-            duration=450
-            image="units/nagas/fighter-idle-4.png"
-        [/frame]
-        [frame]
-            duration=250
-            image="units/nagas/fighter-idle-5.png"
-        [/frame]
-        [frame]
-            duration=250
-            image="units/nagas/fighter-idle-6.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/nagas/fighter-idle-7.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/nagas/fighter-idle-8.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/nagas/fighter-idle-7.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/nagas/fighter-idle-8.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/nagas/fighter-idle-7.png"
-        [/frame]
-        [frame]
-            duration=60
-            image="units/nagas/fighter-idle-8.png"
-        [/frame]
-        [frame]
-            duration=350
-            image="units/nagas/fighter-idle-6.png"
-        [/frame]
-        [frame]
-            duration=350
-            image="units/nagas/fighter-idle-5.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/nagas/fighter-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack]
         name=sword
@@ -112,41 +55,25 @@
         offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=130
-            image="units/nagas/fighter-melee-1.png"
+            image="units/nagas/fighter-melee-1.png:130"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/nagas/fighter-melee-2.png"
+                image="units/nagas/fighter-melee-2.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/nagas/fighter-melee-2.png"
+                image="units/nagas/fighter-melee-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/nagas/fighter-melee-3.png"
+            image="units/nagas/fighter-melee-[3~6].png:[100,90,80,70]"
         [/frame]
-        [frame]
-            duration=90
-            image="units/nagas/fighter-melee-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/nagas/fighter-melee-5.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/nagas/fighter-melee-6.png"
-        [/frame]
     [/attack_anim]
     [female]
         name= _ "Nagini Fighter"
Index: data/core/units/nagas/Myrmidon.cfg
===================================================================
--- data/core/units/nagas/Myrmidon.cfg	(revision 56322)
+++ data/core/units/nagas/Myrmidon.cfg	(working copy)
@@ -54,41 +54,25 @@
         offset=0.0~0.3,0.3~0.5,0.5~0.60,0.60~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=130
-            image="units/nagas/myrmidon-melee-1.png"
+            image="units/nagas/myrmidon-melee-1.png:130"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/nagas/myrmidon-melee-2.png"
+                image="units/nagas/myrmidon-melee-2.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/nagas/myrmidon-melee-2.png"
+                image="units/nagas/myrmidon-melee-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/nagas/myrmidon-melee-3.png"
+            image="units/nagas/myrmidon-melee-[3~6].png:[100,90,80,70]"
         [/frame]
-        [frame]
-            duration=90
-            image="units/nagas/myrmidon-melee-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/nagas/myrmidon-melee-5.png"
-        [/frame]
-        [frame]
-            duration=70
-            image="units/nagas/myrmidon-melee-6.png"
-        [/frame]
     [/attack_anim]
     [female]
         name= _ "Nagini Myrmidon"
Index: data/core/units/humans/Outlaw_Thug.cfg
===================================================================
--- data/core/units/humans/Outlaw_Thug.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Thug.cfg	(working copy)
@@ -47,95 +47,31 @@
         offset=0.0~0.2,0.2~0.6,0.6~0.4,0.4~0.0
         start_time=-500
         [frame]
-            duration=100
-            image="units/human-outlaws/thug-melee-1.png"
+            image="units/human-outlaws/thug-melee-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-outlaws/thug-melee-2.png"
+                image="units/human-outlaws/thug-melee-2.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/human-outlaws/thug-melee-2.png"
+                image="units/human-outlaws/thug-melee-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/human-outlaws/thug-melee-3.png"
+            image="units/human-outlaws/thug-melee-[3~8].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-melee-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-melee-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-melee-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-melee-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-melee-8.png"
-        [/frame]
     [/attack_anim]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
+        start_time=0
         [frame]
-            duration=100
-            image="units/human-outlaws/thug-idle-1.png"
+            image="units/human-outlaws/thug-idle-[1~5,4,5,4,5,2,1].png:[100*3,400,300,400,300,600,100*3]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-idle-3.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-outlaws/thug-idle-4.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/human-outlaws/thug-idle-5.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-outlaws/thug-idle-4.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/human-outlaws/thug-idle-5.png"
-        [/frame]
-        [frame]
-            duration=600
-            image="units/human-outlaws/thug-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thug-idle-1.png"
-        [/frame]
     [/idle_anim]
 [/unit_type]
Index: data/core/units/humans/Mage_Red.cfg
===================================================================
--- data/core/units/humans/Mage_Red.cfg	(revision 56322)
+++ data/core/units/humans/Mage_Red.cfg	(working copy)
@@ -64,68 +64,50 @@
 
         start_time=-575
         [frame]
-            duration=50
-            image="units/human-magi/red-mage.png"
+            image="units/human-magi/red-mage.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-magi/red-mage-attack-magic-1.png"
+            image="units/human-magi/red-mage-attack-magic-1.png:100"
             sound=fire.wav
         [/frame]
         [frame]
-            duration=150
-            image="units/human-magi/red-mage-attack-magic-2.png"
+            image="units/human-magi/red-mage-attack-magic-[2,1].png:[150,75]"
         [/frame]
         [frame]
-            duration=75
-            image="units/human-magi/red-mage-attack-magic-1.png"
+            image="units/human-magi/red-mage.png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/human-magi/red-mage.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-magi/red-mage.png"
+            image="units/human-magi/red-mage.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-magi/red-mage-attack-staff-1.png"
+            image="units/human-magi/red-mage-attack-staff-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/red-mage-attack-staff-2.png"
+                image="units/human-magi/red-mage-attack-staff-2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/red-mage-attack-staff-2.png"
+                image="units/human-magi/red-mage-attack-staff-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-magi/red-mage-attack-magic-1.png"
+            image="units/human-magi/red-mage-attack-magic-1.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=250
-            image="units/human-magi/red-mage.png"
+            image="units/human-magi/red-mage.png:75"
         [/frame]
     [/attack_anim]
     [female]
@@ -153,46 +135,43 @@
             [/filter_attack]
             {MISSILE_FRAME_FIREBALL}
             [frame]
-                image="units/human-magi/red-mage+female.png"
+                image="units/human-magi/red-mage+female.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/red-mage+female-attack-magic-1.png"
+                image="units/human-magi/red-mage+female-attack-magic-1.png:100"
             [/frame]
             [frame]
-                image="units/human-magi/red-mage+female-attack-magic-2.png"
+                image="units/human-magi/red-mage+female-attack-magic-[2,1].png:[150,75]"
             [/frame]
             [frame]
-                image="units/human-magi/red-mage+female-attack-magic-1.png"
+                image="units/human-magi/red-mage+female.png:75"
             [/frame]
-            [frame]
-                image="units/human-magi/red-mage+female.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=staff
             [/filter_attack]
             [frame]
-                image="units/human-magi/red-mage+female.png"
+                image="units/human-magi/red-mage+female.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/red-mage+female-attack-staff-1.png"
+                image="units/human-magi/red-mage+female-attack-staff-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/red-mage+female-attack-staff-2.png"
+                    image="units/human-magi/red-mage+female-attack-staff-2.png:200"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/red-mage+female-attack-staff-2.png"
+                    image="units/human-magi/red-mage+female-attack-staff-2.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/red-mage+female-attack-magic-1.png"
+                image="units/human-magi/red-mage+female-attack-magic-1.png:75"
             [/frame]
             [frame]
-                image="units/human-magi/red-mage+female.png"
+                image="units/human-magi/red-mage+female.png:75"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/humans/Mage_Arch.cfg
===================================================================
--- data/core/units/humans/Mage_Arch.cfg	(revision 56322)
+++ data/core/units/humans/Mage_Arch.cfg	(working copy)
@@ -40,41 +40,8 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-magi/arch-mage-idle-1.png"
+            image="units/human-magi/arch-mage-idle-[1~5,4~1].png:[100*4,2000,100*4]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/arch-mage-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/arch-mage-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/arch-mage-idle-4.png"
-        [/frame]
-        [frame]
-            duration=2000
-            image="units/human-magi/arch-mage-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/arch-mage-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/arch-mage-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/arch-mage-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/arch-mage-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack]
         name=staff
@@ -103,68 +70,49 @@
         {MISSILE_FRAME_FIREBALL}
         start_time=-575
         [frame]
-            duration=50
-            image="units/human-magi/arch-mage.png"
+            image="units/human-magi/arch-mage.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-magi/arch-mage-attack-magic-1.png"
+            image="units/human-magi/arch-mage-attack-magic-1.png:100"
             sound=fire.wav
         [/frame]
         [frame]
-            duration=150
-            image="units/human-magi/arch-mage-attack-magic-2.png"
+            image="units/human-magi/arch-mage-attack-magic-[2,1].png:[150,75]"
         [/frame]
         [frame]
-            duration=75
-            image="units/human-magi/arch-mage-attack-magic-1.png"
+            image="units/human-magi/arch-mage.png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/human-magi/arch-mage.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-magi/arch-mage.png"
+            image="units/human-magi/arch-mage.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-magi/arch-mage-attack-staff-1.png"
+            image="units/human-magi/arch-mage-attack-staff-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/arch-mage-attack-staff-2.png"
+                image="units/human-magi/arch-mage-attack-staff-2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/arch-mage-attack-staff-2.png"
+                image="units/human-magi/arch-mage-attack-staff-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-magi/arch-mage-attack-magic-1.png"
+            image="units/human-magi/arch-mage-attack-magic-1.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=250
-            image="units/human-magi/arch-mage.png"
+            image="units/human-magi/arch-mage.png:75"
         [/frame]
     [/attack_anim]
     [female]
@@ -192,46 +140,43 @@
             [/filter_attack]
             {MISSILE_FRAME_FIREBALL}
             [frame]
-                image="units/human-magi/arch-mage+female.png"
+                image="units/human-magi/arch-mage+female.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/arch-mage+female-attack-magic-1.png"
+                image="units/human-magi/arch-mage+female-attack-magic-1.png:100"
             [/frame]
             [frame]
-                image="units/human-magi/arch-mage+female-attack-magic-2.png"
+                image="units/human-magi/arch-mage+female-attack-magic-[2,1].png:[150,75]"
             [/frame]
             [frame]
-                image="units/human-magi/arch-mage+female-attack-magic-1.png"
+                image="units/human-magi/arch-mage+female.png:75"
             [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=staff
             [/filter_attack]
             [frame]
-                image="units/human-magi/arch-mage+female.png"
+                image="units/human-magi/arch-mage+female.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/arch-mage+female-attack-staff-1.png"
+                image="units/human-magi/arch-mage+female-attack-staff-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/arch-mage+female-attack-staff-2.png"
+                    image="units/human-magi/arch-mage+female-attack-staff-2.png:200"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/arch-mage+female-attack-staff-2.png"
+                    image="units/human-magi/arch-mage+female-attack-staff-2.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/arch-mage+female-attack-magic-1.png"
+                image="units/human-magi/arch-mage+female-attack-magic-1.png:75"
             [/frame]
             [frame]
-                image="units/human-magi/arch-mage+female.png"
+                image="units/human-magi/arch-mage+female.png:75"
             [/frame]
         [/attack_anim]
         #
@@ -241,32 +186,8 @@
         #
         [idle_anim]
             [frame]
-                image="units/human-magi/arch-mage+female.png"
+                image="units/human-magi/arch-mage+female.png:[100*4,2000,100*4]"
             [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/arch-mage+female.png"
-            [/frame]
         [/idle_anim]
     [/female]
 [/unit_type]
Index: data/core/units/humans/Horse_Paladin.cfg
===================================================================
--- data/core/units/humans/Horse_Paladin.cfg	(revision 56322)
+++ data/core/units/humans/Horse_Paladin.cfg	(working copy)
@@ -68,10 +68,9 @@
         number=2
     [/attack]
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/human-loyalists/paladin-moving.png"
+            image="units/human-loyalists/paladin-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/human-loyalists/paladin-defend.png" "units/human-loyalists/paladin.png" {SOUND_LIST:HORSE_HIT} }
@@ -79,34 +78,27 @@
         [filter_attack]
             name=lance
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/paladin.png"
+            image="units/human-loyalists/paladin.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-200
-                end=150
-                image="units/human-loyalists/paladin-moving.png"
+                image="units/human-loyalists/paladin-moving.png:350"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-200
-                end=150
-                image="units/human-loyalists/paladin-moving.png"
+                image="units/human-loyalists/paladin-moving.png:350"
                 sound=spear.ogg
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/paladin.png"
+            image="units/human-loyalists/paladin.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -114,33 +106,25 @@
             name=sword
         [/filter_attack]
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-loyalists/paladin.png"
+            image="units/human-loyalists/paladin.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/paladin-attack-sword.png"
+                image="units/human-loyalists/paladin-attack-sword.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/paladin-attack-sword.png"
+                image="units/human-loyalists/paladin-attack-sword.png:250"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/paladin.png"
+            image="units/human-loyalists/paladin.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Mage_White.cfg
===================================================================
--- data/core/units/humans/Mage_White.cfg	(revision 56322)
+++ data/core/units/humans/Mage_White.cfg	(working copy)
@@ -40,32 +40,17 @@
         arcane=60
     [/resistance]
     [healing_anim]
+        start_time=-525
         [frame]
-            begin=-525
-            end=-450
-            image="units/human-magi/white-mage-magic-1.png"
+            image="units/human-magi/white-mage-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-450
-            end=-375
-            image="units/human-magi/white-mage-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-375
-            end=150
             image="units/human-magi/white-mage-magic-3.png"
             halo=halo/holy/halo[6,1~6].png:75
         [/frame]
         [frame]
-            begin=150
-            end=225
-            image="units/human-magi/white-mage-magic-2.png"
+            image="units/human-magi/white-mage-magic-[2,1].png:75"
         [/frame]
-        [frame]
-            begin=225
-            end=300
-            image="units/human-magi/white-mage-magic-1.png"
-        [/frame]
     [/healing_anim]
     [attack]
         name=staff
@@ -93,28 +78,18 @@
         [/filter_attack]
         {MISSILE_FRAME_LIGHT_BEAM}
 
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/human-magi/white-mage-magic-1.png"
+            image="units/human-magi/white-mage-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/human-magi/white-mage-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/human-magi/white-mage-magic-3.png"
+            image="units/human-magi/white-mage-magic-3.png:75"
             halo=halo/holy/halo6.png
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=0
-                image="units/human-magi/white-mage-magic-3.png"
+                image="units/human-magi/white-mage-magic-3.png:75"
                 sound={SOUND_LIST:HOLY}
                 halo=halo/holy/halo1.png
             [/frame]
@@ -122,95 +97,47 @@
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=0
-                image="units/human-magi/white-mage-magic-3.png"
+                image="units/human-magi/white-mage-magic-3.png:75"
                 sound={SOUND_LIST:HOLY_MISS}
                 halo=halo/holy/halo1.png
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=75
             image="units/human-magi/white-mage-magic-3.png"
-            halo=halo/holy/halo3.png
+            halo=halo/holy/halo[3,5,6].png:[75*2,50]
         [/frame]
         [frame]
-            begin=75
-            end=150
-            image="units/human-magi/white-mage-magic-3.png"
-            halo=halo/holy/halo5.png
+            image="units/human-magi/white-mage-magic-[2,1].png:50"
         [/frame]
-
-        [frame]
-            begin=150
-            end=200
-            image="units/human-magi/white-mage-magic-3.png"
-            halo=halo/holy/halo6.png
-        [/frame]
-        [frame]
-            begin=200
-            end=250
-            image="units/human-magi/white-mage-magic-2.png"
-        [/frame]
-        [frame]
-            begin=250
-            end=300
-            image="units/human-magi/white-mage-magic-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-325
         [frame]
-            begin=-325
-            end=-300
-            image="units/human-magi/white-mage.png"
+            image="units/human-magi/white-mage.png:25"
         [/frame]
         [frame]
-            begin=-300
-            end=-200
-            image="units/human-magi/white-mage-melee-1.png"
+            image="units/human-magi/white-mage-melee-[1,2].png:100"
         [/frame]
-        [frame]
-            begin=-200
-            end=-100
-            image="units/human-magi/white-mage-melee-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/human-magi/white-mage-melee-3.png"
+                image="units/human-magi/white-mage-melee-3.png:150"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/human-magi/white-mage-melee-3.png"
+                image="units/human-magi/white-mage-melee-3.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-magi/white-mage-melee-4.png"
+            image="units/human-magi/white-mage-melee-[4~6].png:100"
         [/frame]
-        [frame]
-            begin=150
-            end=250
-            image="units/human-magi/white-mage-melee-5.png"
-        [/frame]
-        [frame]
-            begin=250
-            end=350
-            image="units/human-magi/white-mage-melee-6.png"
-        [/frame]
     [/attack_anim]
     [female]
         name= _ "female^White Mage"
@@ -236,38 +163,14 @@
         [/portrait]
         [healing_anim]
             [frame]
-                image="units/human-magi/white-mage+female-magic-1.png"
+                image="units/human-magi/white-mage+female-magic-[1,2].png:75"
             [/frame]
             [frame]
-                image="units/human-magi/white-mage+female-magic-2.png"
-            [/frame]
-            [frame]
                 image="units/human-magi/white-mage+female-magic-3.png"
             [/frame]
             [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
+                image="units/human-magi/white-mage+female-magic-[2,1].png:75"
             [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-2.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-1.png"
-            [/frame]
         [/healing_anim]
         [attack_anim]
             [filter_attack]
@@ -275,72 +178,51 @@
             [/filter_attack]
             {MISSILE_FRAME_LIGHT_BEAM}
             [frame]
-                image="units/human-magi/white-mage+female-magic-1.png"
+                image="units/human-magi/white-mage+female-magic-[1,2].png:75"
             [/frame]
             [frame]
-                image="units/human-magi/white-mage+female-magic-2.png"
+                image="units/human-magi/white-mage+female-magic-3.png:75"
             [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
-            [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/white-mage+female-magic-3.png"
+                    image="units/human-magi/white-mage+female-magic-3.png:75"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/white-mage+female-magic-3.png"
+                    image="units/human-magi/white-mage+female-magic-3.png:75"
                 [/frame]
             [/else]
             [frame]
                 image="units/human-magi/white-mage+female-magic-3.png"
             [/frame]
             [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
+                image="units/human-magi/white-mage+female-magic-[2,1].png:50"
             [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-2.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-magic-1.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=staff
             [/filter_attack]
             [frame]
-                image="units/human-magi/white-mage+female.png"
+                image="units/human-magi/white-mage+female.png:25"
             [/frame]
             [frame]
-                image="units/human-magi/white-mage+female-melee-1.png"
+                image="units/human-magi/white-mage+female-melee-[1,2].png:100"
             [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-melee-2.png"
-            [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/white-mage+female-melee-3.png"
+                    image="units/human-magi/white-mage+female-melee-3.png:150"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/white-mage+female-melee-3.png"
+                    image="units/human-magi/white-mage+female-melee-3.png:150"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/white-mage+female-melee-4.png"
+                image="units/human-magi/white-mage+female-melee-[4~6].png:100"
             [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-melee-5.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-mage+female-melee-6.png"
-            [/frame]
         [/attack_anim]
     [/female]
 [/unit_type]
Index: data/core/units/humans/Outlaw.cfg
===================================================================
--- data/core/units/humans/Outlaw.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw.cfg	(working copy)
@@ -51,14 +51,13 @@
         [filter_attack]
             name=sling
         [/filter_attack]
+        start_time=-400
         offset=0.0
         [if]
             hits=yes
             {MISSILE_FRAME_STONE_HIT 5 -6}
             [frame]
-                begin=-400
-                end=-150
-                image="units/human-outlaws/outlaw-attack1.png"
+                image="units/human-outlaws/outlaw-attack1.png:250"
                 sound=sling.ogg
             [/frame]
         [/if]
@@ -66,49 +65,38 @@
             hits=no
             {MISSILE_FRAME_STONE_MISS 5 -6}
             [frame]
-                begin=-400
-                end=-150
-                image="units/human-outlaws/outlaw-attack1.png"
+                image="units/human-outlaws/outlaw-attack1.png:250"
                 sound=sling-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=50
-            image="units/human-outlaws/outlaw-attack2.png"
+            image="units/human-outlaws/outlaw-attack2.png:200"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=mace-spiked
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-outlaws/outlaw-melee-1.png"
+            image="units/human-outlaws/outlaw-melee-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/human-outlaws/outlaw-melee-2.png"
+                image="units/human-outlaws/outlaw-melee-2.png:150"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/human-outlaws/outlaw-melee-2.png"
+                image="units/human-outlaws/outlaw-melee-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-outlaws/outlaw-melee-3.png"
+            image="units/human-outlaws/outlaw-melee-3.png:100"
         [/frame]
     [/attack_anim]
     [female]
@@ -137,17 +125,17 @@
             [if]
                 {MISSILE_FRAME_STONE_HIT 5 -6}
                 [frame]
-                    image="units/human-outlaws/outlaw+female-attack1.png"
+                    image="units/human-outlaws/outlaw+female-attack1.png:250"
                 [/frame]
             [/if]
             [else]
                 {MISSILE_FRAME_STONE_MISS 5 -6}
                 [frame]
-                    image="units/human-outlaws/outlaw+female-attack1.png"
+                    image="units/human-outlaws/outlaw+female-attack1.png:250"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/outlaw+female-attack2.png"
+                image="units/human-outlaws/outlaw+female-attack2.png:200"
             [/frame]
         [/attack_anim]
         [attack_anim]
@@ -155,89 +143,28 @@
                 name=mace-spiked
             [/filter_attack]
             [frame]
-                image="units/human-outlaws/outlaw+female-melee-1.png"
+                image="units/human-outlaws/outlaw+female-melee-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-outlaws/outlaw+female-melee-2.png"
+                    image="units/human-outlaws/outlaw+female-melee-2.png:150"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/outlaw+female-melee-2.png"
+                    image="units/human-outlaws/outlaw+female-melee-2.png:150"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/outlaw+female-melee-3.png"
+                image="units/human-outlaws/outlaw+female-melee-3.png:100"
             [/frame]
         [/attack_anim]
     [/female]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
+        start_time=0
         [frame]
-            begin=0
-            end=100
-            image="units/human-outlaws/outlaw-idle-1.png"
+            image="units/human-outlaws/outlaw-idle-[1,7,5~1,6~1].png:[100*9,500,100*3]"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-outlaws/outlaw-idle-7.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/human-outlaws/outlaw-idle-5.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=400
-            image="units/human-outlaws/outlaw-idle-4.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=500
-            image="units/human-outlaws/outlaw-idle-3.png"
-        [/frame]
-        [frame]
-            begin=500
-            end=600
-            image="units/human-outlaws/outlaw-idle-2.png"
-        [/frame]
-        [frame]
-            begin=600
-            end=700
-            image="units/human-outlaws/outlaw-idle-1.png"
-        [/frame]
-        [frame]
-            begin=700
-            end=800
-            image="units/human-outlaws/outlaw-idle-6.png"
-        [/frame]
-        [frame]
-            begin=800
-            end=900
-            image="units/human-outlaws/outlaw-idle-5.png"
-        [/frame]
-        [frame]
-            begin=900
-            end=1400
-            image="units/human-outlaws/outlaw-idle-4.png"
-        [/frame]
-        [frame]
-            begin=1400
-            end=1500
-            image="units/human-outlaws/outlaw-idle-3.png"
-        [/frame]
-        [frame]
-            begin=1500
-            end=1600
-            image="units/human-outlaws/outlaw-idle-2.png"
-        [/frame]
-        [frame]
-            begin=1600
-            end=1700
-            image="units/human-outlaws/outlaw-idle-1.png"
-        [/frame]
     [/idle_anim]
 [/unit_type]
Index: data/core/units/humans/Outlaw_Rogue.cfg
===================================================================
--- data/core/units/humans/Outlaw_Rogue.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Rogue.cfg	(working copy)
@@ -59,95 +59,62 @@
         [filter_attack]
             name=knife
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/dagger-n.png"
             image_diagonal="projectiles/dagger-ne.png"
         [/missile_frame]
+        start_time=-200
         [if]
             hits=yes
             [frame]
-                begin=-200
-                end=-100
-                image="units/human-outlaws/rogue-ranged.png"
+                image="units/human-outlaws/rogue-ranged.png:100"
                 sound=throwing-knife.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-200
-                end=-100
-                image="units/human-outlaws/rogue-ranged.png"
+                image="units/human-outlaws/rogue-ranged.png:100"
                 sound=throwing-knife-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=50
-            image="units/human-outlaws/rogue-ranged.png"
+            image="units/human-outlaws/rogue-ranged.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=dagger
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-outlaws/rogue.png"
+            image="units/human-outlaws/rogue.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-outlaws/rogue-attack.png"
+                image="units/human-outlaws/rogue-attack.png:250"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-outlaws/rogue-attack.png"
+                image="units/human-outlaws/rogue-attack.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/human-outlaws/rogue.png"
+            image="units/human-outlaws/rogue.png:100"
         [/frame]
     [/attack_anim]
     [death]
         start_time=0
         [frame]
-            duration=100
-            image="units/human-outlaws/rogue-die-1.png"
+            image="units/human-outlaws/rogue-die-[1~6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/rogue-die-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/rogue-die-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/rogue-die-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/rogue-die-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/rogue-die-6.png"
-        [/frame]
     [/death]
     [female]
         name= _ "female^Rogue"
@@ -174,16 +141,16 @@
             [/filter_attack]
             [if]
                 [frame]
-                    image="units/human-outlaws/rogue+female-ranged.png"
+                    image="units/human-outlaws/rogue+female-ranged.png:100"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/rogue+female-ranged.png"
+                    image="units/human-outlaws/rogue+female-ranged.png:100"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/rogue+female-ranged.png"
+                image="units/human-outlaws/rogue+female-ranged.png:150"
             [/frame]
         [/attack_anim]
         [attack_anim]
@@ -191,41 +158,26 @@
                 name=dagger
             [/filter_attack]
             [frame]
-                image="units/human-outlaws/rogue+female.png"
+                image="units/human-outlaws/rogue+female.png:50"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-outlaws/rogue+female-attack.png"
+                    image="units/human-outlaws/rogue+female-attack.png:250"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/rogue+female-attack.png"
+                    image="units/human-outlaws/rogue+female-attack:250.png"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/rogue+female.png"
+                image="units/human-outlaws/rogue+female.png:100"
             [/frame]
         [/attack_anim]
         [death]
             [frame]
-                image="units/human-outlaws/rogue+female-die-1.png"
+                image="units/human-outlaws/rogue+female-die-[1~6].png:100"
             [/frame]
-            [frame]
-                image="units/human-outlaws/rogue+female-die-2.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/rogue+female-die-3.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/rogue+female-die-4.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/rogue+female-die-5.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/rogue+female-die-6.png"
-            [/frame]
         [/death]
     [/female]
 [/unit_type]
Index: data/core/units/humans/Outlaw_Assassin.cfg
===================================================================
--- data/core/units/humans/Outlaw_Assassin.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Assassin.cfg	(working copy)
@@ -63,116 +63,91 @@
         [filter_attack]
             name=knife
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/dagger-n.png"
             image_diagonal="projectiles/dagger-ne.png"
         [/missile_frame]
+        start_time=-350
         [if]
             hits=yes
             [frame]
-                begin=-350
-                end=-100
-                image="units/human-outlaws/assassin-throwknife1.png"
+                image="units/human-outlaws/assassin-throwknife1.png:250"
                 sound=throwing-knife.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-350
-                end=-100
-                image="units/human-outlaws/assassin-throwknife1.png"
+                image="units/human-outlaws/assassin-throwknife1.png:250"
                 sound=throwing-knife-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=50
-            image="units/human-outlaws/assassin-throwknife2.png"
+            image="units/human-outlaws/assassin-throwknife2.png:150"
         [/frame]
         {SOUND:POISON}
         [frame]
-            begin=50
-            end=50
-            image="units/human-outlaws/assassin.png"
+            image="units/human-outlaws/assassin.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=dagger
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-200
-            image="units/human-outlaws/assassin.png"
+            image="units/human-outlaws/assassin.png:25"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-outlaws/assassin-melee-2-1.png"
+            image="units/human-outlaws/assassin-melee-2-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=150
-                image="units/human-outlaws/assassin-melee-2-2.png"
+                image="units/human-outlaws/assassin-melee-2-2.png:250"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=150
-                image="units/human-outlaws/assassin-melee-2-2.png"
+                image="units/human-outlaws/assassin-melee-2-2.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-outlaws/assassin.png"
+            image="units/human-outlaws/assassin.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=dagger
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-200
-            image="units/human-outlaws/assassin.png"
+            image="units/human-outlaws/assassin.png:25"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-outlaws/assassin-melee-1-1.png"
+            image="units/human-outlaws/assassin-melee-1-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=150
-                image="units/human-outlaws/assassin-melee-1-2.png"
+                image="units/human-outlaws/assassin-melee-1-2.png:250"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=150
-                image="units/human-outlaws/assassin-melee-1-2.png"
+                image="units/human-outlaws/assassin-melee-1-2.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-outlaws/assassin.png"
+            image="units/human-outlaws/assassin.png:50"
         [/frame]
     [/attack_anim]
     [female]
@@ -200,19 +175,19 @@
             [/filter_attack]
             [if]
                 [frame]
-                    image="units/human-outlaws/assassin+female-throwknife1.png"
+                    image="units/human-outlaws/assassin+female-throwknife1.png:250"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/assassin+female-throwknife1.png"
+                    image="units/human-outlaws/assassin+female-throwknife1.png:250"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/assassin+female-throwknife2.png"
+                image="units/human-outlaws/assassin+female-throwknife2.png:150"
             [/frame]
             [frame]
-                image="units/human-outlaws/assassin+female.png"
+                image="units/human-outlaws/assassin+female.png:100"
             [/frame]
         [/attack_anim]
         [attack_anim]
@@ -220,23 +195,23 @@
                 name=dagger
             [/filter_attack]
             [frame]
-                image="units/human-outlaws/assassin+female.png"
+                image="units/human-outlaws/assassin+female.png:25"
             [/frame]
             [frame]
-                image="units/human-outlaws/assassin+female-melee-2-1.png"
+                image="units/human-outlaws/assassin+female-melee-2-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-outlaws/assassin+female-melee-2-2.png"
+                    image="units/human-outlaws/assassin+female-melee-2-2.png:250"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/assassin+female-melee-2-2.png"
+                    image="units/human-outlaws/assassin+female-melee-2-2.png:250"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/assassin+female.png"
+                image="units/human-outlaws/assassin+female.png:50"
             [/frame]
         [/attack_anim]
         [attack_anim]
@@ -244,23 +219,23 @@
                 name=dagger
             [/filter_attack]
             [frame]
-                image="units/human-outlaws/assassin+female.png"
+                image="units/human-outlaws/assassin+female.png:25"
             [/frame]
             [frame]
-                image="units/human-outlaws/assassin+female-melee-1-1.png"
+                image="units/human-outlaws/assassin+female-melee-1-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-outlaws/assassin+female-melee-1-2.png"
+                    image="units/human-outlaws/assassin+female-melee-1-2.png:250"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/assassin+female-melee-1-2.png"
+                    image="units/human-outlaws/assassin+female-melee-1-2.png:250"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/assassin+female.png"
+                image="units/human-outlaws/assassin+female.png:50"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/humans/Loyalist_Master_at_Arms.cfg
===================================================================
--- data/core/units/humans/Loyalist_Master_at_Arms.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Master_at_Arms.cfg	(working copy)
@@ -60,312 +60,129 @@
     [victory_anim]
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-1.png"
+            image="units/human-loyalists/master-at-arms-victory-[1~6,5~1].png:[100*5,1000,100*5]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-5.png"
-        [/frame]
-        [frame]
-            duration=1000
-            image="units/human-loyalists/master-at-arms-victory-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-1.png"
-        [/frame]
     [/victory_anim]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-1.png"
+            image="units/human-loyalists/master-at-arms-victory-[1~6,5~1].png:[100*5,1000,100*5]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-5.png"
-        [/frame]
-        [frame]
-            duration=1000
-            image="units/human-loyalists/master-at-arms-victory-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/master-at-arms-victory-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-600
         [frame]
-            begin=-600
-            end=-500
-            image="units/human-loyalists/master-at-arms-crossbow-1.png"
+            image="units/human-loyalists/master-at-arms-crossbow-[1,2].png:100"
         [/frame]
-        [frame]
-            begin=-500
-            end=-400
-            image="units/human-loyalists/master-at-arms-crossbow-2.png"
-        [/frame]
         {SOUND:HIT_AND_MISS crossbow.ogg crossbow-miss.ogg -400}
         [frame]
-            begin=-400
-            end=-300
-            image="units/human-loyalists/master-at-arms-crossbow-3.png"
+            image="units/human-loyalists/master-at-arms-crossbow-[3~6,3~1].png:[100,200*2,100*4]"
         [/frame]
-        [frame]
-            begin=-300
-            end=-100
-            image="units/human-loyalists/master-at-arms-crossbow-4.png"
-        [/frame]
-        [frame]
-            begin=-100
-            end=100
-            image="units/human-loyalists/master-at-arms-crossbow-5.png"
-        [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/master-at-arms-crossbow-6.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/human-loyalists/master-at-arms-crossbow-3.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=400
-            image="units/human-loyalists/master-at-arms-crossbow-2.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=500
-            image="units/human-loyalists/master-at-arms-crossbow-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=saber
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/human-loyalists/master-at-arms.png"
+            image="units/human-loyalists/master-at-arms.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-125
-            image="units/human-loyalists/master-at-arms-melee-2-1.png"
+            image="units/human-loyalists/master-at-arms-melee-2-[1,2].png:50"
         [/frame]
-        [frame]
-            begin=-125
-            end=-75
-            image="units/human-loyalists/master-at-arms-melee-2-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/human-loyalists/master-at-arms-melee-3-3.png"
+                image="units/human-loyalists/master-at-arms-melee-3-3.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/human-loyalists/master-at-arms-melee-1-3.png"
+                image="units/human-loyalists/master-at-arms-melee-1-3.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image="units/human-loyalists/master-at-arms-recover-1.png"
+            image="units/human-loyalists/master-at-arms-recover-[1,2].png:50"
         [/frame]
         [frame]
-            begin=125
-            end=175
-            image="units/human-loyalists/master-at-arms-recover-2.png"
+            image="units/human-loyalists/master-at-arms.png:25"
         [/frame]
-        [frame]
-            begin=175
-            end=200
-            image="units/human-loyalists/master-at-arms.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=saber
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/human-loyalists/master-at-arms.png"
+            image="units/human-loyalists/master-at-arms.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-125
-            image="units/human-loyalists/master-at-arms-melee-2-1.png"
+            image="units/human-loyalists/master-at-arms-melee-2-[1,2].png:50"
         [/frame]
-        [frame]
-            begin=-125
-            end=-75
-            image="units/human-loyalists/master-at-arms-melee-2-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/human-loyalists/master-at-arms-melee-2-3.png"
+                image="units/human-loyalists/master-at-arms-melee-2-3.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/human-loyalists/master-at-arms-melee-1-3.png"
+                image="units/human-loyalists/master-at-arms-melee-1-3.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image="units/human-loyalists/master-at-arms-recover-1.png"
+            image="units/human-loyalists/master-at-arms-recover-[1,2].png:50"
         [/frame]
         [frame]
-            begin=125
-            end=175
-            image="units/human-loyalists/master-at-arms-recover-2.png"
+            image="units/human-loyalists/master-at-arms.png:25"
         [/frame]
-        [frame]
-            begin=175
-            end=200
-            image="units/human-loyalists/master-at-arms.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=saber
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/human-loyalists/master-at-arms.png"
+            image="units/human-loyalists/master-at-arms.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-125
-            image="units/human-loyalists/master-at-arms-melee-1-1.png"
+            image="units/human-loyalists/master-at-arms-melee-1-[1,2].png:50"
         [/frame]
-        [frame]
-            begin=-125
-            end=-75
-            image="units/human-loyalists/master-at-arms-melee-1-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/human-loyalists/master-at-arms-melee-1-3.png"
+                image="units/human-loyalists/master-at-arms-melee-1-3.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/human-loyalists/master-at-arms-melee-1-3.png"
+                image="units/human-loyalists/master-at-arms-melee-1-3.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image="units/human-loyalists/master-at-arms-recover-1.png"
+            image="units/human-loyalists/master-at-arms-recover-[1,2].png:50"
         [/frame]
         [frame]
-            begin=125
-            end=175
-            image="units/human-loyalists/master-at-arms-recover-2.png"
+            image="units/human-loyalists/master-at-arms.png:25"
         [/frame]
-        [frame]
-            begin=175
-            end=200
-            image="units/human-loyalists/master-at-arms.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Longbowman.cfg
===================================================================
--- data/core/units/humans/Loyalist_Longbowman.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Longbowman.cfg	(working copy)
@@ -55,95 +55,45 @@
         start_time=0
         [frame]
             duration=1000
-            image="units/human-loyalists/longbowman-idle-1.png"
+            image="units/human-loyalists/longbowman-idle-[1~4,3,4,3,4,3,4,1].png:[1000,400,100,200,100,200,100,200,100,400,100]"
         [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/longbowman-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/longbowman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-loyalists/longbowman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/longbowman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-loyalists/longbowman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/longbowman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-loyalists/longbowman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/longbowman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/longbowman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/longbowman-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=bow
         [/filter_attack]
         start_time=-445
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
         [frame]
-            duration=65
-            image="units/human-loyalists/longbowman-bow.png"
+            image="units/human-loyalists/longbowman-bow.png:65"
         [/frame]
         [frame]
-            duration=75
-            image="units/human-loyalists/longbowman-bow-attack-1.png"
+            image="units/human-loyalists/longbowman-bow-attack-[1,2].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/longbowman-bow-attack-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                duration=100
-                image="units/human-loyalists/longbowman-bow-attack-3.png"
+                image="units/human-loyalists/longbowman-bow-attack-3.png:100"
                 sound=bow-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-loyalists/longbowman-bow-attack-3.png"
+                image="units/human-loyalists/longbowman-bow-attack-3.png:100"
                 sound=bow.ogg
             [/frame]
         [/else]
         [frame]
-            duration=130
-            image="units/human-loyalists/longbowman-bow-attack-4.png"
+            image="units/human-loyalists/longbowman-bow-attack-4.png:130"
         [/frame]
         [frame]
-            duration=65
-            image="units/human-loyalists/longbowman-bow-attack-1.png"
+            image="units/human-loyalists/longbowman-bow-attack-1.png:65"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -153,40 +103,30 @@
         start_time=-275
 
         [frame]
-            duration=50
-            image="units/human-loyalists/longbowman-melee-defend-1.png"
+            image="units/human-loyalists/longbowman-melee-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-loyalists/longbowman-melee-attack-1.png"
+            image="units/human-loyalists/longbowman-melee-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-loyalists/longbowman-melee-attack-2.png"
+                image="units/human-loyalists/longbowman-melee-attack-2.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/human-loyalists/longbowman-melee-attack-2.png"
+                image="units/human-loyalists/longbowman-melee-attack-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/human-loyalists/longbowman-melee-attack-3.png"
+            image="units/human-loyalists/longbowman-melee-attack-[3,4].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-loyalists/longbowman-melee-attack-4.png"
+            image="units/human-loyalists/longbowman-melee-defend-1.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/human-loyalists/longbowman-melee-defend-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Woodsman_Trapper.cfg
===================================================================
--- data/core/units/humans/Woodsman_Trapper.cfg	(revision 56322)
+++ data/core/units/humans/Woodsman_Trapper.cfg	(working copy)
@@ -44,37 +44,8 @@
     [death]
         start_time=0
         [frame]
-            duration=100
-            image="units/human-outlaws/trapper-die-1.png"
+            image="units/human-outlaws/trapper-die-[1~8].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/trapper-die-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/trapper-die-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/trapper-die-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/trapper-die-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/trapper-die-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/trapper-die-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/trapper-die-8.png"
-        [/frame]
     [/death]
     [attack]
         name=dagger
@@ -97,110 +68,83 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
         [if]
             hits=yes
             [frame]
-                begin=-400
-                end=-250
-                image="units/human-outlaws/trapper-attack1.png"
+                image="units/human-outlaws/trapper-attack1.png:150"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-400
-                end=-250
-                image="units/human-outlaws/trapper-attack1.png"
+                image="units/human-outlaws/trapper-attack1.png:150"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-250
-            end=-100
-            image="units/human-outlaws/trapper-attack2.png"
+            image="units/human-outlaws/trapper-attack[2,3].png:[150,100]"
         [/frame]
         [frame]
-            begin=-100
-            end=0
-            image="units/human-outlaws/trapper-attack3.png"
+            image="units/human-outlaws/trapper.png:100"
         [/frame]
-        [frame]
-            begin=0
-            end=100
-            image="units/human-outlaws/trapper.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=dagger
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-outlaws/trapper-dagger.png"
+            image="units/human-outlaws/trapper-dagger.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-outlaws/trapper-attack-melee-2.png"
+                image="units/human-outlaws/trapper-attack-melee-2.png:250"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-outlaws/trapper-attack-melee-2.png"
+                image="units/human-outlaws/trapper-attack-melee-2.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-outlaws/trapper-dagger.png"
+            image="units/human-outlaws/trapper-dagger.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=dagger
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-outlaws/trapper-dagger.png"
+            image="units/human-outlaws/trapper-dagger.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-outlaws/trapper-attack-melee.png"
+                image="units/human-outlaws/trapper-attack-melee.png:250"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-outlaws/trapper-attack-melee.png"
+                image="units/human-outlaws/trapper-attack-melee.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-outlaws/trapper-dagger.png"
+            image="units/human-outlaws/trapper-dagger.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Mage_of_Light.cfg
===================================================================
--- data/core/units/humans/Mage_of_Light.cfg	(revision 56322)
+++ data/core/units/humans/Mage_of_Light.cfg	(working copy)
@@ -43,32 +43,17 @@
         arcane=40
     [/resistance]
     [healing_anim]
+        start_time=-525
         [frame]
-            begin=-525
-            end=-450
-            image="units/human-magi/white-cleric-magic-1.png"
+            image="units/human-magi/white-cleric-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-450
-            end=-375
-            image="units/human-magi/white-cleric-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-375
-            end=150
             image="units/human-magi/white-cleric-magic-3.png"
             halo=halo/holy/halo[6,1~6].png:75
         [/frame]
         [frame]
-            begin=150
-            end=225
-            image="units/human-magi/white-cleric-magic-2.png"
+            image="units/human-magi/white-cleric-magic-[2,1].png:75"
         [/frame]
-        [frame]
-            begin=225
-            end=300
-            image="units/human-magi/white-cleric-magic-1.png"
-        [/frame]
     [/healing_anim]
     [attack]
         name=morning star
@@ -96,28 +81,18 @@
         [/filter_attack]
         {MISSILE_FRAME_LIGHT_BEAM}
 
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/human-magi/white-cleric-magic-1.png"
+            image="units/human-magi/white-cleric-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/human-magi/white-cleric-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/human-magi/white-cleric-magic-3.png"
+            image="units/human-magi/white-cleric-magic-3.png:75"
             halo=halo/holy/halo6.png
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=0
-                image="units/human-magi/white-cleric-magic-3.png"
+                image="units/human-magi/white-cleric-magic-3.png:75"
                 sound={SOUND_LIST:HOLY}
                 halo=halo/holy/halo1.png
             [/frame]
@@ -125,85 +100,42 @@
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=0
-                image="units/human-magi/white-cleric-magic-3.png"
+                image="units/human-magi/white-cleric-magic-3.png:75"
                 sound={SOUND_LIST:HOLY_MISS}
                 halo=halo/holy/halo1.png
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=75
             image="units/human-magi/white-cleric-magic-3.png"
-            halo=halo/holy/halo3.png
+            halo=halo/holy/halo[3,5,6].png:[75*2,50]
         [/frame]
         [frame]
-            begin=75
-            end=150
-            image="units/human-magi/white-cleric-magic-3.png"
-            halo=halo/holy/halo5.png
+            image="units/human-magi/white-cleric-magic-[2,1].png:50"
         [/frame]
-
-        [frame]
-            begin=150
-            end=200
-            image="units/human-magi/white-cleric-magic-3.png"
-            halo=halo/holy/halo6.png
-        [/frame]
-        [frame]
-            begin=200
-            end=250
-            image="units/human-magi/white-cleric-magic-2.png"
-        [/frame]
-        [frame]
-            begin=250
-            end=300
-            image="units/human-magi/white-cleric-magic-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=morning star
         [/filter_attack]
+
+        start_time=-200
         [if]
             hits=yes
             [frame]
-                begin=-200
-                end=-175
-                image="units/human-magi/white-cleric-magic-3.png"
+                image="units/human-magi/white-cleric-magic-3.png:25"
                 sound=flail.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-200
-                end=-175
-                image="units/human-magi/white-cleric-magic-3.png"
+                image="units/human-magi/white-cleric-magic-3.png:25"
                 sound=flail-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-175
-            end=-100
-            image="units/human-magi/white-cleric-mace-1.png"
+            image="units/human-magi/white-cleric-mace-[1~4].png:[75*3,100]"
         [/frame]
-        [frame]
-            begin=-100
-            end=25
-            image="units/human-magi/white-cleric-mace-2.png"
-        [/frame]
-        [frame]
-            begin=25
-            end=100
-            image="units/human-magi/white-cleric-mace-3.png"
-        [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-magi/white-cleric-mace-4.png"
-        [/frame]
     [/attack_anim]
     [female]
         name= _ "female^Mage of Light"
@@ -226,38 +158,14 @@
         [/portrait]
         [healing_anim]
             [frame]
-                image="units/human-magi/white-cleric+female-magic-1.png"
+                image="units/human-magi/white-cleric+female-magic-[1,2].png:75"
             [/frame]
             [frame]
-                image="units/human-magi/white-cleric+female-magic-2.png"
-            [/frame]
-            [frame]
                 image="units/human-magi/white-cleric+female-magic-3.png"
             [/frame]
             [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
+                image="units/human-magi/white-cleric+female-magic-[2,1].png:75"
             [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-2.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-1.png"
-            [/frame]
         [/healing_anim]
         [attack_anim]
             [filter_attack]
@@ -265,39 +173,27 @@
             [/filter_attack]
             {MISSILE_FRAME_LIGHT_BEAM}
             [frame]
-                image="units/human-magi/white-cleric+female-magic-1.png"
+                image="units/human-magi/white-cleric+female-magic-[1,2].png:75"
             [/frame]
             [frame]
-                image="units/human-magi/white-cleric+female-magic-2.png"
+                image="units/human-magi/white-cleric+female-magic-3.png:75"
             [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
-            [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/white-cleric+female-magic-3.png"
+                    image="units/human-magi/white-cleric+female-magic-3.png:75"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/white-cleric+female-magic-3.png"
+                    image="units/human-magi/white-cleric+female-magic-3.png:75"
                 [/frame]
             [/else]
             [frame]
                 image="units/human-magi/white-cleric+female-magic-3.png"
             [/frame]
             [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
+                image="units/human-magi/white-cleric+female-magic-[2,1].png:50"
             [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-2.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-magic-1.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
@@ -306,27 +202,18 @@
             [if]
                 hits=yes
                 [frame]
-                    image="units/human-magi/white-cleric+female-magic-3.png"
+                    image="units/human-magi/white-cleric+female-magic-3.png:25"
                 [/frame]
             [/if]
             [else]
                 hits=no
                 [frame]
-                    image="units/human-magi/white-cleric+female-magic-3.png"
+                    image="units/human-magi/white-cleric+female-magic-3.png:25"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/white-cleric+female-mace-1.png"
+                image="units/human-magi/white-cleric+female-mace-[1~4].png:[75*3,100]"
             [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-mace-2.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-mace-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/white-cleric+female-mace-4.png"
-            [/frame]
         [/attack_anim]
     [/female]
 [/unit_type]
Index: data/core/units/humans/Outlaw_Ruffian.cfg
===================================================================
--- data/core/units/humans/Outlaw_Ruffian.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Ruffian.cfg	(working copy)
@@ -46,52 +46,24 @@
         [/filter_attack]
         start_time=-500
         [frame]
-            duration=100
-            image="units/human-peasants/ruffian-attack-1.png"
+            image="units/human-peasants/ruffian-attack-[1~5].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-peasants/ruffian-attack-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-peasants/ruffian-attack-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-peasants/ruffian-attack-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-peasants/ruffian-attack-5.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-peasants/ruffian-attack-6.png"
+                image="units/human-peasants/ruffian-attack-6.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/human-peasants/ruffian-attack-6.png"
+                image="units/human-peasants/ruffian-attack-6.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/human-peasants/ruffian-attack-7.png"
+            image="units/human-peasants/ruffian-attack-[7~9].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-peasants/ruffian-attack-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-peasants/ruffian-attack-9.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Spearman.cfg
===================================================================
--- data/core/units/humans/Loyalist_Spearman.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Spearman.cfg	(working copy)
@@ -34,109 +34,29 @@
     [standing_anim]
         start_time=0
         [frame]
-            duration=400
-            image="units/human-loyalists/spearman.png"
+            image="units/human-loyalists/spearman.png:400"
         [/frame]
         [frame]
-            duration=150
-            image="units/human-loyalists/spearman-stand-1.png"
+            image="units/human-loyalists/spearman-stand-[1~6].png:[150*2,300,100*3]"
         [/frame]
-        [frame]
-            duration=150
-            image="units/human-loyalists/spearman-stand-2.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/human-loyalists/spearman-stand-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-stand-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-stand-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-stand-6.png"
-        [/frame]
     [/standing_anim]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle1.png"
+            image="units/human-loyalists/spearman-idle[1~4,3,2].png:[100*3,400,100*2]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle3.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/spearman-idle4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle2.png"
-        [/frame]
     [/idle_anim]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle2-1.png"
+            image="units/human-loyalists/spearman-idle2-[1~6].png:[100*4,400,100]"
         [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/spearman-idle2-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle2-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle2-4.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/spearman-idle2-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/spearman-idle2-6.png"
-        [/frame]
     [/idle_anim]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=125
-            image="units/human-loyalists/spearman-death1.png"
+            image="units/human-loyalists/spearman-death[1~4].png:125"
         [/frame]
-        [frame]
-            begin=125
-            end=250
-            image="units/human-loyalists/spearman-death2.png"
-        [/frame]
-        [frame]
-            begin=250
-            end=375
-            image="units/human-loyalists/spearman-death3.png"
-        [/frame]
-        [frame]
-            begin=375
-            end=500
-            image="units/human-loyalists/spearman-death4.png"
-        [/frame]
     [/death]
     {DEFENSE_ANIM "units/human-loyalists/spearman-defend.png" "units/human-loyalists/spearman-defend-2.png" {SOUND_LIST:HUMAN_HIT} }
     [attack]
@@ -164,44 +84,35 @@
         [filter_attack]
             name=javelin
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/human-loyalists/spearman-death1.png"
+            image="units/human-loyalists/spearman-death1.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [frame]
-            begin=-150
-            end=-100
-            image="units/human-loyalists/spearman-attack-ranged.png"
+            image="units/human-loyalists/spearman-attack-ranged.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/human-loyalists/spearman-attack-ranged.png"
+                image="units/human-loyalists/spearman-attack-ranged.png:50"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/human-loyalists/spearman-attack-ranged.png"
+                image="units/human-loyalists/spearman-attack-ranged.png:50"
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=50
-            image="units/human-loyalists/spearman-attack-ranged2.png"
+            image="units/human-loyalists/spearman-attack-ranged2.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -212,106 +123,51 @@
         direction=s
         offset="0~0.5,0.5~0"
         [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-1.png"
+            image="units/human-loyalists/spearman-attack-s-[1~4].png:25"
         [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-2.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-3.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-4.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=25
-                image="units/human-loyalists/spearman-attack-s-5.png"
+                image="units/human-loyalists/spearman-attack-s-5.png:25"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=25
-                image="units/human-loyalists/spearman-attack-s-5.png"
+                image="units/human-loyalists/spearman-attack-s-5.png:25"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-6.png"
+            image="units/human-loyalists/spearman-attack-s-[6~14].png:25"
         [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-7.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-8.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-9.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-10.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-11.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-12.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-13.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/human-loyalists/spearman-attack-s-14.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=spear
         [/filter_attack]
         direction=n
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/spearman.png"
+            image="units/human-loyalists/spearman.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/spearman-attack-n.png"
+                image="units/human-loyalists/spearman-attack-n.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/spearman-attack-n.png"
+                image="units/human-loyalists/spearman-attack-n.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-loyalists/spearman.png"
+            image="units/human-loyalists/spearman.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -319,33 +175,26 @@
             name=spear
         [/filter_attack]
         direction=ne,nw
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/spearman.png"
+            image="units/human-loyalists/spearman.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/spearman-attack-ne.png"
+                image="units/human-loyalists/spearman-attack-ne.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/spearman-attack-ne.png"
+                image="units/human-loyalists/spearman-attack-ne.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-loyalists/spearman.png"
+            image="units/human-loyalists/spearman.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -356,60 +205,24 @@
         direction=se,sw
         offset="0~0.4,0.4~0"
         [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-1.png"
+            image="units/human-loyalists/spearman-attack-se-[1~3].png:32"
         [/frame]
-        [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-2.png"
-        [/frame]
-        [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=32
-                image="units/human-loyalists/spearman-attack-se-4.png"
+                image="units/human-loyalists/spearman-attack-se-4.png:32"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=32
-                image="units/human-loyalists/spearman-attack-se-4.png"
+                image="units/human-loyalists/spearman-attack-se-4.png:32"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-5.png"
+            image="units/human-loyalists/spearman-attack-se-[5~11].png:32"
         [/frame]
-        [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-6.png"
-        [/frame]
-        [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-7.png"
-        [/frame]
-        [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-8.png"
-        [/frame]
-        [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-9.png"
-        [/frame]
-        [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-10.png"
-        [/frame]
-        [frame]
-            duration=32
-            image="units/human-loyalists/spearman-attack-se-11.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Outlaw_Highwayman.cfg
===================================================================
--- data/core/units/humans/Outlaw_Highwayman.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Highwayman.cfg	(working copy)
@@ -49,36 +49,7 @@
         start_time=-500
         {SOUND:HIT_AND_MISS mace.wav {SOUND_LIST:MISS} 500}
         [frame]
-            duration=100
-            image="units/human-outlaws/highwayman-melee-1.png"
+            image="units/human-outlaws/highwayman-melee-[1~8].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/highwayman-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/highwayman-melee-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/highwayman-melee-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/highwayman-melee-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/highwayman-melee-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/highwayman-melee-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/highwayman-melee-8.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Iron_Mauler.cfg
===================================================================
--- data/core/units/humans/Loyalist_Iron_Mauler.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Iron_Mauler.cfg	(working copy)
@@ -42,33 +42,26 @@
         [filter_attack]
             name=mace
         [/filter_attack]
+        start_time=-260
         [frame]
-            begin=-260
-            end=-100
-            image="units/human-loyalists/siegetrooper-attack-1.png"
+            image="units/human-loyalists/siegetrooper-attack-1.png:160"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/siegetrooper-attack-2.png"
+                image="units/human-loyalists/siegetrooper-attack-2.png:200"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/siegetrooper-attack-2.png"
+                image="units/human-loyalists/siegetrooper-attack-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/siegetrooper.png"
+            image="units/human-loyalists/siegetrooper.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Javelineer.cfg
===================================================================
--- data/core/units/humans/Loyalist_Javelineer.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Javelineer.cfg	(working copy)
@@ -59,92 +59,67 @@
         [filter_attack]
             name=javelin
         [/filter_attack]
+        missile_start_time=0
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/human-loyalists/javelineer-attack-ranged-1.png"
+            image="units/human-loyalists/javelineer-attack-ranged-1.png:100"
         [/frame]
         [frame]
-            begin=-150
-            end=-50
-            image="units/human-loyalists/javelineer-attack-ranged-2.png"
+            image="units/human-loyalists/javelineer-attack-ranged-2.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-50
-                end=50
-                image="units/human-loyalists/javelineer-attack-ranged-3.png"
+                image="units/human-loyalists/javelineer-attack-ranged-3.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-50
-                end=50
-                image="units/human-loyalists/javelineer-attack-ranged-3.png"
+                image="units/human-loyalists/javelineer-attack-ranged-3.png:100"
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=100
-            image="units/human-loyalists/javelineer-attack-ranged-4.png"
+            image="units/human-loyalists/javelineer-attack-ranged-4.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=spear
         [/filter_attack]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-200
-            image="units/human-loyalists/javelineer-attack-melee-1.png"
+            image="units/human-loyalists/javelineer-attack-melee-[1,2].png:100"
         [/frame]
-        [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/javelineer-attack-melee-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/javelineer-attack-melee-3.png"
+                image="units/human-loyalists/javelineer-attack-melee-3.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/javelineer-attack-melee-3.png"
+                image="units/human-loyalists/javelineer-attack-melee-3.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-loyalists/javelineer-attack-ranged-1.png"
+            image="units/human-loyalists/javelineer-attack-ranged-1.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=250
-            image="units/human-loyalists/javelineer-attack-melee-1.png"
+            image="units/human-loyalists/javelineer-attack-melee-1.png:75"
         [/frame]
         [frame]
-            begin=250
-            end=300
-            image="units/human-loyalists/javelineer.png"
+            image="units/human-loyalists/javelineer.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Cavalier.cfg
===================================================================
--- data/core/units/humans/Loyalist_Cavalier.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Cavalier.cfg	(working copy)
@@ -33,10 +33,9 @@
         image="portraits/humans/transparent/cavalier.png"
     [/portrait]
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/human-loyalists/cavalier-moving.png"
+            image="units/human-loyalists/cavalier-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/human-loyalists/cavalier-defend.png" "units/human-loyalists/cavalier.png" {SOUND_LIST:HORSE_HIT} }
@@ -67,57 +66,30 @@
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        start_time=-1100
         [frame]
-            begin=-1100
-            end=-1000
-            image="units/human-loyalists/cavalier-ranged-1.png"
+            image="units/human-loyalists/cavalier-ranged-[1~5].png:100"
         [/frame]
-        [frame]
-            begin=-1000
-            end=-900
-            image="units/human-loyalists/cavalier-ranged-2.png"
-        [/frame]
-        [frame]
-            begin=-800
-            end=-700
-            image="units/human-loyalists/cavalier-ranged-3.png"
-        [/frame]
-        [frame]
-            begin=-700
-            end=-600
-            image="units/human-loyalists/cavalier-ranged-4.png"
-        [/frame]
-        [frame]
-            begin=-600
-            end=-500
-            image="units/human-loyalists/cavalier-ranged-5.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-500
-                end=-300
-                image="units/human-loyalists/cavalier-ranged-6.png"
+                image="units/human-loyalists/cavalier-ranged-6.png:200"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-500
-                end=-300
-                image="units/human-loyalists/cavalier-ranged-6.png"
+                image="units/human-loyalists/cavalier-ranged-6.png:200"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-300
-            end=-0
-            image="units/human-loyalists/cavalier-ranged-7.png"
+            image="units/human-loyalists/cavalier-ranged-7.png:300"
         [/frame]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
@@ -126,44 +98,33 @@
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-200
-            image="units/human-loyalists/cavalier.png"
+            image="units/human-loyalists/cavalier.png:25"
         [/frame]
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-loyalists/cavalier-moving.png"
+            image="units/human-loyalists/cavalier-moving.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/cavalier-attack.png"
+                image="units/human-loyalists/cavalier-attack.png:300"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/cavalier-attack.png"
+                image="units/human-loyalists/cavalier-attack.png:300"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/cavalier-moving.png"
+            image="units/human-loyalists/cavalier-moving.png:50"
         [/frame]
         [frame]
-            begin=200
-            end=225
-            image="units/human-loyalists/cavalier.png"
+            image="units/human-loyalists/cavalier.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Halberdier.cfg
===================================================================
--- data/core/units/humans/Loyalist_Halberdier.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Halberdier.cfg	(working copy)
@@ -61,104 +61,40 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-1.png"
+            image="units/human-loyalists/halberdier-idle-[1~12,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-4.png"
-        [/frame]
-        [frame]
-            duration=700
-            image="units/human-loyalists/halberdier-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/halberdier-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=halberd
             type=blade
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/halberdier-slash-se-1.png"
+            image="units/human-loyalists/halberdier-slash-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/halberdier-slash-se-2.png"
+                image="units/human-loyalists/halberdier-slash-se-2.png:200"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/halberdier-slash-se-2.png"
+                image="units/human-loyalists/halberdier-slash-se-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/halberdier-pierce-se.png"
+            image="units/human-loyalists/halberdier-pierce-se.png:100"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -167,38 +103,29 @@
             type=pierce
         [/filter_attack]
         direction=ne,nw
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/halberdier.png"
+            image="units/human-loyalists/halberdier.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/halberdier-pierce-ne.png"
+                image="units/human-loyalists/halberdier-pierce-ne.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/halberdier-pierce-ne.png"
+                image="units/human-loyalists/halberdier-pierce-ne.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:75"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -207,38 +134,29 @@
             type=pierce
         [/filter_attack]
         direction=se,sw
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/halberdier.png"
+            image="units/human-loyalists/halberdier.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/halberdier-pierce-se.png"
+                image="units/human-loyalists/halberdier-pierce-se.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/halberdier-pierce-se.png"
+                image="units/human-loyalists/halberdier-pierce-se.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:75"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -248,31 +166,22 @@
         [/filter_attack]
         direction=n
         hits=yes
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/halberdier.png"
+            image="units/human-loyalists/halberdier.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/halberdier-pierce-ne.png"
+            image="units/human-loyalists/halberdier-pierce-ne.png:100"
         [/frame]
         [frame]
-            begin=-100
-            end=100
-            image="units/human-loyalists/halberdier-pierce-n.png"
+            image="units/human-loyalists/halberdier-pierce-n.png:200"
             sound=spear.ogg
         [/frame]
         [frame]
-            begin=100
-            end=150
-            image="units/human-loyalists/halberdier-pierce-ne.png"
+            image="units/human-loyalists/halberdier-pierce-ne.png:50"
         [/frame]
         [frame]
-            begin=150
-            end=175
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:25"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -282,31 +191,22 @@
         [/filter_attack]
         direction=n
         hits=no
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/halberdier.png"
+            image="units/human-loyalists/halberdier.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/halberdier-pierce-ne.png"
+            image="units/human-loyalists/halberdier-pierce-ne.png:100"
         [/frame]
         [frame]
-            begin=-150
-            end=100
-            image="units/human-loyalists/halberdier-pierce-n.png"
+            image="units/human-loyalists/halberdier-pierce-n.png:250"
             sound=spear-miss.ogg
         [/frame]
         [frame]
-            begin=100
-            end=150
-            image="units/human-loyalists/halberdier-pierce-ne.png"
+            image="units/human-loyalists/halberdier-pierce-ne.png:50"
         [/frame]
         [frame]
-            begin=150
-            end=175
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:25"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -315,43 +215,32 @@
             type=pierce
         [/filter_attack]
         direction=s
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/halberdier.png"
+            image="units/human-loyalists/halberdier.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/halberdier-pierce-s.png"
+                image="units/human-loyalists/halberdier-pierce-s.png:250"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/halberdier-pierce-s.png"
+                image="units/human-loyalists/halberdier-pierce-s.png:250"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-loyalists/halberdier-pierce-se.png"
+            image="units/human-loyalists/halberdier-pierce-se.png:50"
         [/frame]
         [frame]
-            begin=150
-            end=175
-            image="units/human-loyalists/halberdier-defend.png"
+            image="units/human-loyalists/halberdier-defend.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Horse_Knight.cfg
===================================================================
--- data/core/units/humans/Horse_Knight.cfg	(revision 56322)
+++ data/core/units/humans/Horse_Knight.cfg	(working copy)
@@ -62,68 +62,54 @@
         [filter_attack]
             name=lance
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/knight.png"
+            image="units/human-loyalists/knight.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-200
-                end=150
-                image="units/human-loyalists/knight-moving.png"
+                image="units/human-loyalists/knight-moving.png:350"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-200
-                end=150
-                image="units/human-loyalists/knight-moving.png"
+                image="units/human-loyalists/knight-moving.png:350"
                 sound=spear.ogg
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/knight.png"
+            image="units/human-loyalists/knight.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-loyalists/knight.png"
+            image="units/human-loyalists/knight.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/knight-attack.png"
+                image="units/human-loyalists/knight-attack.png:300"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/knight-attack.png"
+                image="units/human-loyalists/knight-attack.png:300"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/knight.png"
+            image="units/human-loyalists/knight.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Woodsman_Poacher.cfg
===================================================================
--- data/core/units/humans/Woodsman_Poacher.cfg	(revision 56322)
+++ data/core/units/humans/Woodsman_Poacher.cfg	(working copy)
@@ -63,77 +63,58 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-400
         [if]
             hits=yes
             [frame]
-                begin=-400
-                end=-250
-                image="units/human-outlaws/poacher-attack1.png"
+                image="units/human-outlaws/poacher-attack1.png:150"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-400
-                end=-250
-                image="units/human-outlaws/poacher-attack1.png"
+                image="units/human-outlaws/poacher-attack1.png:150"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-250
-            end=-100
-            image="units/human-outlaws/poacher-attack2.png"
+            image="units/human-outlaws/poacher-attack[2,3].png:[150,100]"
         [/frame]
         [frame]
-            begin=-100
-            end=0
-            image="units/human-outlaws/poacher-attack3.png"
+            image="units/human-outlaws/poacher.png:100"
         [/frame]
-        [frame]
-            begin=0
-            end=100
-            image="units/human-outlaws/poacher.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=dagger
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/human-outlaws/poacher-dagger.png"
+            image="units/human-outlaws/poacher-dagger.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=50
-                image="units/human-outlaws/poacher-attack.png"
+                image="units/human-outlaws/poacher-attack.png:200"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=50
-                image="units/human-outlaws/poacher-attack.png"
+                image="units/human-outlaws/poacher-attack.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-outlaws/poacher-dagger.png"
+            image="units/human-outlaws/poacher-dagger.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Sergeant.cfg
===================================================================
--- data/core/units/humans/Loyalist_Sergeant.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Sergeant.cfg	(working copy)
@@ -57,152 +57,73 @@
     [/attack]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
+        start_time=0
         [frame]
-            begin=0
-            end=100
-            image="units/human-loyalists/sergeant-idle-1.png"
+            image="units/human-loyalists/sergeant-idle-[1~11,2,1].png:[100*4,200,100*3,300,100*4]"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/sergeant-idle-2.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/human-loyalists/sergeant-idle-3.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=400
-            image="units/human-loyalists/sergeant-idle-4.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=600
-            image="units/human-loyalists/sergeant-idle-5.png"
-        [/frame]
-        [frame]
-            begin=600
-            end=700
-            image="units/human-loyalists/sergeant-idle-6.png"
-        [/frame]
-        [frame]
-            begin=700
-            end=800
-            image="units/human-loyalists/sergeant-idle-7.png"
-        [/frame]
-        [frame]
-            begin=800
-            end=900
-            image="units/human-loyalists/sergeant-idle-8.png"
-        [/frame]
-        [frame]
-            begin=900
-            end=1200
-            image="units/human-loyalists/sergeant-idle-9.png"
-        [/frame]
-        [frame]
-            begin=1200
-            end=1300
-            image="units/human-loyalists/sergeant-idle-10.png"
-        [/frame]
-        [frame]
-            begin=1300
-            end=1400
-            image="units/human-loyalists/sergeant-idle-11.png"
-        [/frame]
-        [frame]
-            begin=1400
-            end=1500
-            image="units/human-loyalists/sergeant-idle-2.png"
-        [/frame]
-        [frame]
-            begin=1500
-            end=1600
-            image="units/human-loyalists/sergeant-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-400
         [frame]
-            begin=-400
-            end=-300
-            image="units/human-loyalists/sergeant-crossbow.png"
+            image="units/human-loyalists/sergeant-crossbow.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-150
-                image="units/human-loyalists/sergeant-crossbow-attack1.png"
+                image="units/human-loyalists/sergeant-crossbow-attack1.png:150"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-150
-                image="units/human-loyalists/sergeant-crossbow-attack1.png"
+                image="units/human-loyalists/sergeant-crossbow-attack1.png:150"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=0
-            image="units/human-loyalists/sergeant-crossbow-attack2.png"
+            image="units/human-loyalists/sergeant-crossbow-attack2.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/human-loyalists/sergeant.png"
+            image="units/human-loyalists/sergeant.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-100
-            image="units/human-loyalists/sergeant-attack-sword-1.png"
+            image="units/human-loyalists/sergeant-attack-sword-1.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/human-loyalists/sergeant-attack-sword-2.png"
+                image="units/human-loyalists/sergeant-attack-sword-2.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/human-loyalists/sergeant-attack-sword-2.png"
+                image="units/human-loyalists/sergeant-attack-sword-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-loyalists/sergeant-attack-sword-3.png"
+            image="units/human-loyalists/sergeant-attack-sword-3.png:100"
         [/frame]
         [frame]
-            begin=150
-            end=175
-            image="units/human-loyalists/sergeant.png"
+            image="units/human-loyalists/sergeant.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Lieutenant.cfg
===================================================================
--- data/core/units/humans/Loyalist_Lieutenant.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Lieutenant.cfg	(working copy)
@@ -58,173 +58,75 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/lieutenant-idle-1.png"
+            image="units/human-loyalists/lieutenant-idle-[1~8,7~5,9,1].png:[100*2,300,50*4,500,100*5]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/lieutenant-idle-2.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/human-loyalists/lieutenant-idle-3.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/human-loyalists/lieutenant-idle-4.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/human-loyalists/lieutenant-idle-5.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/human-loyalists/lieutenant-idle-6.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/human-loyalists/lieutenant-idle-7.png"
-        [/frame]
-        [frame]
-            duration=500
-            image="units/human-loyalists/lieutenant-idle-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/lieutenant-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/lieutenant-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/lieutenant-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/lieutenant-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/lieutenant-idle-1.png"
-        [/frame]
     [/idle_anim]
 
     [death]
         start_time=0
         [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-1.png"
+            image="units/human-loyalists/lieutenant-die-[1~9].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-2.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-3.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-4.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-5.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-6.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-7.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-8.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/lieutenant-die-9.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-400
         [frame]
-            begin=-400
-            end=-300
-            image="units/human-loyalists/lieutenant-crossbow.png"
+            image="units/human-loyalists/lieutenant-crossbow.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-150
-                image="units/human-loyalists/lieutenant-crossbow-attack1.png"
+                image="units/human-loyalists/lieutenant-crossbow-attack1.png:150"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-150
-                image="units/human-loyalists/lieutenant-crossbow-attack1.png"
+                image="units/human-loyalists/lieutenant-crossbow-attack1.png:150"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=0
-            image="units/human-loyalists/lieutenant-crossbow-attack2.png"
+            image="units/human-loyalists/lieutenant-crossbow-attack2.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-175
-            image="units/human-loyalists/lieutenant.png"
+            image="units/human-loyalists/lieutenant.png:50"
         [/frame]
         [frame]
-            begin=-175
-            end=-100
-            image="units/human-loyalists/lieutenant-attack-sword-1.png"
+            image="units/human-loyalists/lieutenant-attack-sword-1.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/human-loyalists/lieutenant-attack-sword-2.png"
+                image="units/human-loyalists/lieutenant-attack-sword-2.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/human-loyalists/lieutenant-attack-sword-2.png"
+                image="units/human-loyalists/lieutenant-attack-sword-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-loyalists/lieutenant-attack-sword-3.png"
+            image="units/human-loyalists/lieutenant-attack-sword-3.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Duelist.cfg
===================================================================
--- data/core/units/humans/Loyalist_Duelist.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Duelist.cfg	(working copy)
@@ -39,46 +39,10 @@
         {ABILITY_SKIRMISHER}
     [/abilities]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=100
-            image="units/human-loyalists/duelist-die1.png"
+            image="units/human-loyalists/duelist-die[1~8].png:100"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/duelist-die2.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/human-loyalists/duelist-die3.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=400
-            image="units/human-loyalists/duelist-die4.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=500
-            image="units/human-loyalists/duelist-die5.png"
-        [/frame]
-        [frame]
-            begin=500
-            end=600
-            image="units/human-loyalists/duelist-die6.png"
-        [/frame]
-        [frame]
-            begin=600
-            end=700
-            image="units/human-loyalists/duelist-die7.png"
-        [/frame]
-        [frame]
-            begin=700
-            end=800
-            image="units/human-loyalists/duelist-die8.png"
-        [/frame]
     [/death]
     [attack]
         name=saber
@@ -102,27 +66,24 @@
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-350
         [if]
             hits=yes
             [frame]
-                begin=-350
-                end=50
-                image="units/human-loyalists/duelist-ranged.png"
+                image="units/human-loyalists/duelist-ranged.png:400"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-350
-                end=50
-                image="units/human-loyalists/duelist-ranged.png"
+                image="units/human-loyalists/duelist-ranged.png:400"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
@@ -131,33 +92,26 @@
         [filter_attack]
             name=saber
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/human-loyalists/duelist.png"
+            image="units/human-loyalists/duelist.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=50
-                image="units/human-loyalists/duelist-attack.png"
+                image="units/human-loyalists/duelist-attack.png:200"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=50
-                image="units/human-loyalists/duelist-attack.png"
+                image="units/human-loyalists/duelist-attack.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-loyalists/duelist.png"
+            image="units/human-loyalists/duelist.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Outlaw_Bandit.cfg
===================================================================
--- data/core/units/humans/Outlaw_Bandit.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Bandit.cfg	(working copy)
@@ -45,48 +45,24 @@
         offset=0.0~0.2,0.2~0.6,0.6~0.4,0.4~0.0
         start_time=-500
         [frame]
-            duration=100
-            image="units/human-outlaws/bandit-melee-1.png"
+            image="units/human-outlaws/bandit-melee-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-outlaws/bandit-melee-2.png"
+                image="units/human-outlaws/bandit-melee-2.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/human-outlaws/bandit-melee-2.png"
+                image="units/human-outlaws/bandit-melee-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/human-outlaws/bandit-melee-3.png"
+            image="units/human-outlaws/bandit-melee-[3~8].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/bandit-melee-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/bandit-melee-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/bandit-melee-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/bandit-melee-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/bandit-melee-8.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_General.cfg
===================================================================
--- data/core/units/humans/Loyalist_General.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_General.cfg	(working copy)
@@ -74,117 +74,62 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/general-idle-1.png"
+            image="units/human-loyalists/general-idle-[1~4,6,4,5~1].png:[100,300,500,100,400*2,300,500,100*3]"
         [/frame]
-        [frame]
-            duration=300
-            image="units/human-loyalists/general-idle-2.png"
-        [/frame]
-        [frame]
-            duration=500
-            image="units/human-loyalists/general-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/general-idle-4.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/general-idle-6.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/general-idle-4.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/human-loyalists/general-idle-5.png"
-        [/frame]
-        [frame]
-            duration=500
-            image="units/human-loyalists/general-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/general-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/general-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/general-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-400
         [frame]
-            begin=-400
-            end=-300
-            image="units/human-loyalists/general-crossbow.png"
+            image="units/human-loyalists/general-crossbow.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-150
-                image="units/human-loyalists/general-crossbow-attack1.png"
+                image="units/human-loyalists/general-crossbow-attack1.png:150"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-150
-                image="units/human-loyalists/general-crossbow-attack1.png"
+                image="units/human-loyalists/general-crossbow-attack1.png:150"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=0
-            image="units/human-loyalists/general-crossbow-attack2.png"
+            image="units/human-loyalists/general-crossbow-attack2.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-250
-            image="units/human-loyalists/general.png"
+            image="units/human-loyalists/general.png:50"
             offset=0.0~0.1
         [/frame]
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/general-defend-1.png"
+            image="units/human-loyalists/general-defend-1.png:50"
             offset=0.1~0.15
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/general-attack-sword1.png"
+            image="units/human-loyalists/general-attack-sword1.png:100"
             offset=0.15~0.35
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=-25
-                image="units/human-loyalists/general-attack-sword2.png"
+                image="units/human-loyalists/general-attack-sword2.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
                 offset=0.35~0.45
             [/frame]
@@ -192,41 +137,17 @@
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=-25
-                image="units/human-loyalists/general-attack-sword2.png"
+                image="units/human-loyalists/general-attack-sword2.png:75"
                 sound={SOUND_LIST:MISS}
                 offset=0.35~0.45
             [/frame]
         [/else]
         [frame]
-            begin=-25
-            end=75
-            image="units/human-loyalists/general-attack-sword3.png"
-            offset=0.45~0.5
+            image="units/human-loyalists/general-attack-sword[3,4*2,5].png:[100,20,30,75]"
+            offset=0.45~0.5,0.5,0.5~0.4,0.4~0.2
         [/frame]
         [frame]
-            begin=75
-            end=95
-            image="units/human-loyalists/general-attack-sword4.png"
-            offset=0.5
-        [/frame]
-        [frame]
-            begin=95
-            end=125
-            image="units/human-loyalists/general-attack-sword4.png"
-            offset=0.5~0.4
-        [/frame]
-        [frame]
-            begin=125
-            end=200
-            image="units/human-loyalists/general-attack-sword5.png"
-            offset=0.4~0.2
-        [/frame]
-        [frame]
-            begin=150
-            end=225
-            image="units/human-loyalists/general.png"
+            image="units/human-loyalists/general.png:75"
             offset=0.2~0.0
         [/frame]
     [/attack_anim]
Index: data/core/units/humans/Mage_Silver.cfg
===================================================================
--- data/core/units/humans/Mage_Silver.cfg	(revision 56322)
+++ data/core/units/humans/Mage_Silver.cfg	(working copy)
@@ -74,81 +74,58 @@
         {MAGIC_MISSILE 14 -23}
         {MAGIC_MISSILE_STAFF_FLARE -750 600 14 -23}
 
+        start_time=-800
         [frame]
-            begin=-800
-            end=-700
-            image="units/human-magi/silver-mage-attack-magic1.png"
+            image="units/human-magi/silver-mage-attack-magic[1,2].png:[100,350]"
         [/frame]
-        [frame]
-            begin=-700
-            end=-350
-            image="units/human-magi/silver-mage-attack-magic2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                begin=-350
-                end=-100
-                image="units/human-magi/silver-mage-attack-magic2.png"
+                image="units/human-magi/silver-mage-attack-magic2.png:250"
                 sound=magic-missile-[1~3]-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-350
-                end=-100
-                image="units/human-magi/silver-mage-attack-magic2.png"
+                image="units/human-magi/silver-mage-attack-magic2.png:250"
                 sound=magic-missile-[1~3].ogg
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=100
-            image="units/human-magi/silver-mage-attack-magic1.png"
+            image="units/human-magi/silver-mage-attack-magic1.png:200"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-magi/silver-mage.png"
+            image="units/human-magi/silver-mage.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-magi/silver-mage-attack-staff1.png"
+            image="units/human-magi/silver-mage-attack-staff1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/silver-mage-attack-staff2.png"
+                image="units/human-magi/silver-mage-attack-staff2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/silver-mage-attack-staff2.png"
+                image="units/human-magi/silver-mage-attack-staff2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-magi/silver-mage-attack-magic1.png"
+            image="units/human-magi/silver-mage-attack-magic1.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=250
-            image="units/human-magi/silver-mage.png"
+            image="units/human-magi/silver-mage.png:75"
         [/frame]
     [/attack_anim]
     [animation]
@@ -179,41 +156,11 @@
         [/teleport_sparkle_3_frame]
 
         [frame]
-            duration=200
-            image="units/human-magi/silver-mage-teleport-1.png"
+            image="units/human-magi/silver-mage-teleport-[1~8].png:[200,100*7]"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-2.png"
+            image="misc/blank-hex.png:300"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-8.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="misc/blank-hex.png"
-        [/frame]
     [/animation]
 
     [animation]
@@ -243,41 +190,11 @@
             halo_y=-30~30
         [/teleport_sparkle_3_frame]
         [frame]
-            duration=300
-            image="misc/blank-hex.png"
+            image="misc/blank-hex.png:300"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-8.png"
+            image="units/human-magi/silver-mage-teleport-[8~1].png:[100*7,200]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-magi/silver-mage-teleport-2.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-magi/silver-mage-teleport-1.png"
-        [/frame]
     [/animation]
     [female]
         name= _ "female^Silver Mage"
@@ -309,23 +226,20 @@
             {MAGIC_MISSILE 14 -23}
             {MAGIC_MISSILE_STAFF_FLARE -750 600 14 -23}
             [frame]
-                image="units/human-magi/silver-mage+female-attack-magic1.png"
+                image="units/human-magi/silver-mage+female-attack-magic[1,2].png:[100,350]"
             [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-attack-magic2.png"
-            [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/silver-mage+female-attack-magic2.png"
+                    image="units/human-magi/silver-mage+female-attack-magic2.png:250"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/silver-mage+female-attack-magic2.png"
+                    image="units/human-magi/silver-mage+female-attack-magic2.png:250"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/silver-mage+female-attack-magic1.png"
+                image="units/human-magi/silver-mage+female-attack-magic1.png:200"
             [/frame]
         [/attack_anim]
         [attack_anim]
@@ -333,56 +247,35 @@
                 name=staff
             [/filter_attack]
             [frame]
-                image="units/human-magi/silver-mage+female.png"
+                image="units/human-magi/silver-mage+female.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/silver-mage+female-attack-staff1.png"
+                image="units/human-magi/silver-mage+female-attack-staff1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/silver-mage+female-attack-staff2.png"
+                    image="units/human-magi/silver-mage+female-attack-staff2.png:200"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/silver-mage+female-attack-staff2.png"
+                    image="units/human-magi/silver-mage+female-attack-staff2.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/silver-mage+female-attack-magic1.png"
+                image="units/human-magi/silver-mage+female-attack-magic1.png:75"
             [/frame]
             [frame]
-                image="units/human-magi/silver-mage+female.png"
+                image="units/human-magi/silver-mage+female.png:75"
             [/frame]
         [/attack_anim]
         [animation]
             apply_to=pre_teleport
             [frame]
-                image="units/human-magi/silver-mage+female-teleport-1.png"
+                image="units/human-magi/silver-mage+female-teleport-[1~8].png:[100*7,200]"
             [/frame]
             [frame]
-                image="units/human-magi/silver-mage+female-teleport-2.png"
             [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-4.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-5.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-6.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-7.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-8.png"
-            [/frame]
-            [frame]
-            [/frame]
         [/animation]
 
         [animation]
@@ -390,29 +283,8 @@
             [frame]
             [/frame]
             [frame]
-                image="units/human-magi/silver-mage+female-teleport-8.png"
+                image="units/human-magi/silver-mage+female-teleport-[8~1].png:[100*7,200]"
             [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-7.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-6.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-5.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-4.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-3.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-2.png"
-            [/frame]
-            [frame]
-                image="units/human-magi/silver-mage+female-teleport-1.png"
-            [/frame]
         [/animation]
     [/female]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Swordsman.cfg
===================================================================
--- data/core/units/humans/Loyalist_Swordsman.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Swordsman.cfg	(working copy)
@@ -46,128 +46,38 @@
     [/attack]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
+        start_time=0
         [frame]
-            begin=0
-            end=100
-            image="units/human-loyalists/swordsman-idle-1.png"
+            image="units/human-loyalists/swordsman-idle-[1~12,4,12,3~1].png:[100*12,400,100*4]"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/swordsman-idle-2.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/human-loyalists/swordsman-idle-3.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=400
-            image="units/human-loyalists/swordsman-idle-4.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=500
-            image="units/human-loyalists/swordsman-idle-5.png"
-        [/frame]
-        [frame]
-            begin=500
-            end=600
-            image="units/human-loyalists/swordsman-idle-6.png"
-        [/frame]
-        [frame]
-            begin=600
-            end=700
-            image="units/human-loyalists/swordsman-idle-7.png"
-        [/frame]
-        [frame]
-            begin=700
-            end=800
-            image="units/human-loyalists/swordsman-idle-8.png"
-        [/frame]
-        [frame]
-            begin=800
-            end=900
-            image="units/human-loyalists/swordsman-idle-9.png"
-        [/frame]
-        [frame]
-            begin=900
-            end=1000
-            image="units/human-loyalists/swordsman-idle-10.png"
-        [/frame]
-        [frame]
-            begin=1000
-            end=1100
-            image="units/human-loyalists/swordsman-idle-11.png"
-        [/frame]
-        [frame]
-            begin=1100
-            end=1200
-            image="units/human-loyalists/swordsman-idle-12.png"
-        [/frame]
-        [frame]
-            begin=1200
-            end=1600
-            image="units/human-loyalists/swordsman-idle-4.png"
-        [/frame]
-        [frame]
-            begin=1600
-            end=1700
-            image="units/human-loyalists/swordsman-idle-12.png"
-        [/frame]
-        [frame]
-            begin=1700
-            end=1800
-            image="units/human-loyalists/swordsman-idle-3.png"
-        [/frame]
-        [frame]
-            begin=1800
-            end=1900
-            image="units/human-loyalists/swordsman-idle-2.png"
-        [/frame]
-        [frame]
-            begin=1900
-            end=2000
-            image="units/human-loyalists/swordsman-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image="units/human-loyalists/swordsman.png"
+            image="units/human-loyalists/swordsman.png:25"
         [/frame]
         [frame]
-            begin=-175
-            end=-75
-            image="units/human-loyalists/swordsman-attack-1.png"
+            image="units/human-loyalists/swordsman-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image="units/human-loyalists/swordsman-attack-2.png"
+                image="units/human-loyalists/swordsman-attack-2.png:150"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image="units/human-loyalists/swordsman-attack-2.png"
+                image="units/human-loyalists/swordsman-attack-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=200
-            image="units/human-loyalists/swordsman-attack-3.png"
+            image="units/human-loyalists/swordsman-attack-3.png:125"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Horse_Grand_Knight.cfg
===================================================================
--- data/core/units/humans/Horse_Grand_Knight.cfg	(revision 56322)
+++ data/core/units/humans/Horse_Grand_Knight.cfg	(working copy)
@@ -52,10 +52,9 @@
         number=2
     [/attack]
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/human-loyalists/grand-knight-moving.png"
+            image="units/human-loyalists/grand-knight-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/human-loyalists/grand-knight-defend.png" "units/human-loyalists/grand-knight.png" {SOUND_LIST:HORSE_HIT} }
@@ -63,68 +62,54 @@
         [filter_attack]
             name=lance
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/grand-knight.png"
+            image="units/human-loyalists/grand-knight.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-200
-                end=150
-                image="units/human-loyalists/grand-knight-moving.png"
+                image="units/human-loyalists/grand-knight-moving.png:350"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-200
-                end=150
-                image="units/human-loyalists/grand-knight-moving.png"
+                image="units/human-loyalists/grand-knight-moving.png:350"
                 sound=spear.ogg
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/grand-knight.png"
+            image="units/human-loyalists/grand-knight.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-loyalists/grand-knight.png"
+            image="units/human-loyalists/grand-knight.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/grand-knight-attack-sword.png"
+                image="units/human-loyalists/grand-knight-attack-sword.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/grand-knight-attack-sword.png"
+                image="units/human-loyalists/grand-knight-attack-sword.png:250"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/grand-knight.png"
+            image="units/human-loyalists/grand-knight.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Pikeman.cfg
===================================================================
--- data/core/units/humans/Loyalist_Pikeman.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Pikeman.cfg	(working copy)
@@ -34,31 +34,10 @@
         pierce=60
     [/resistance]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=80
-            image="units/human-loyalists/pikeman-die-1.png"
+            image="units/human-loyalists/pikeman-die-[1~5].png:80"
         [/frame]
-        [frame]
-            begin=80
-            end=160
-            image="units/human-loyalists/pikeman-die-2.png"
-        [/frame]
-        [frame]
-            begin=160
-            end=240
-            image="units/human-loyalists/pikeman-die-3.png"
-        [/frame]
-        [frame]
-            begin=240
-            end=320
-            image="units/human-loyalists/pikeman-die-4.png"
-        [/frame]
-        [frame]
-            begin=320
-            end=400
-            image="units/human-loyalists/pikeman-die-5.png"
-        [/frame]
     [/death]
     [attack]
         name=pike
@@ -75,66 +54,34 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/pikeman-idle-1.png"
+            image="units/human-loyalists/pikeman-idle-[1~4,3~1].png:[100*3,1000,100*3]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/pikeman-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/pikeman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=1000
-            image="units/human-loyalists/pikeman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/pikeman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/pikeman-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/pikeman-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=pike
         [/filter_attack]
         direction=ne,nw
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/human-loyalists/pikeman.png"
+            image="units/human-loyalists/pikeman.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/pikeman-attack-ne.png"
+                image="units/human-loyalists/pikeman-attack-ne.png:250"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/pikeman-attack-ne.png"
+                image="units/human-loyalists/pikeman-attack-ne.png:250"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-loyalists/pikeman.png"
+            image="units/human-loyalists/pikeman.png:75"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -142,33 +89,26 @@
             name=pike
         [/filter_attack]
         direction=se,sw
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/human-loyalists/pikeman.png"
+            image="units/human-loyalists/pikeman.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/pikeman-attack-se.png"
+                image="units/human-loyalists/pikeman-attack-se.png:250"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-loyalists/pikeman-attack-se.png"
+                image="units/human-loyalists/pikeman-attack-se.png:250"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-loyalists/pikeman.png"
+            image="units/human-loyalists/pikeman.png:75"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -176,38 +116,29 @@
             name=pike
         [/filter_attack]
         direction=n
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/pikeman.png"
+            image="units/human-loyalists/pikeman.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/pikeman-attack-ne.png"
+            image="units/human-loyalists/pikeman-attack-ne.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/pikeman-attack-n.png"
+                image="units/human-loyalists/pikeman-attack-n.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/pikeman-attack-n.png"
+                image="units/human-loyalists/pikeman-attack-n.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-loyalists/pikeman.png"
+            image="units/human-loyalists/pikeman.png:75"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -215,38 +146,29 @@
             name=pike
         [/filter_attack]
         direction=s
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/pikeman.png"
+            image="units/human-loyalists/pikeman.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/pikeman-attack-se.png"
+            image="units/human-loyalists/pikeman-attack-se.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/pikeman-attack-s.png"
+                image="units/human-loyalists/pikeman-attack-s.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/pikeman-attack-s.png"
+                image="units/human-loyalists/pikeman-attack-s.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-loyalists/pikeman.png"
+            image="units/human-loyalists/pikeman.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Horse_Lancer.cfg
===================================================================
--- data/core/units/humans/Horse_Lancer.cfg	(revision 56322)
+++ data/core/units/humans/Horse_Lancer.cfg	(working copy)
@@ -44,54 +44,42 @@
     [/attack]
     {DEFENSE_ANIM "units/human-loyalists/lancer-defend.png" "units/human-loyalists/lancer.png" {SOUND_LIST:HORSE_HIT} }
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/human-loyalists/lancer-moving.png"
+            image="units/human-loyalists/lancer-moving.png:150"
         [/frame]
     [/movement_anim]
     [attack_anim]
         [filter_attack]
             name=lance
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-225
-            image="units/human-loyalists/lancer.png"
+            image="units/human-loyalists/lancer.png:25"
             sound=horse-canter.wav
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/human-loyalists/lancer-moving.png"
+            image="units/human-loyalists/lancer-moving.png:75"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/lancer-attack.png"
+                image="units/human-loyalists/lancer-attack.png:300"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/lancer-attack.png"
+                image="units/human-loyalists/lancer-attack.png:300"
                 sound=spear.ogg
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/lancer-moving.png"
+            image="units/human-loyalists/lancer-moving.png:50"
         [/frame]
         [frame]
-            begin=200
-            end=225
-            image="units/human-loyalists/lancer.png"
+            image="units/human-loyalists/lancer.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Mage.cfg
===================================================================
--- data/core/units/humans/Mage.cfg	(revision 56322)
+++ data/core/units/humans/Mage.cfg	(working copy)
@@ -68,81 +68,58 @@
         {MAGIC_MISSILE 11 -20}
         {MAGIC_MISSILE_STAFF_FLARE -750 600 11 -20}
 
+        start_time=-800
         [frame]
-            begin=-800
-            end=-700
-            image="units/human-magi/mage-attack-magic1.png"
+            image="units/human-magi/mage-attack-magic[1,2].png:[100,350]"
         [/frame]
-        [frame]
-            begin=-700
-            end=-350
-            image="units/human-magi/mage-attack-magic2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                begin=-350
-                end=-100
-                image="units/human-magi/mage-attack-magic2.png"
+                image="units/human-magi/mage-attack-magic2.png:250"
                 sound=magic-missile-[1~3]-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-350
-                end=-100
-                image="units/human-magi/mage-attack-magic2.png"
+                image="units/human-magi/mage-attack-magic2.png:250"
                 sound=magic-missile-[1~3].ogg
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=100
-            image="units/human-magi/mage-attack-magic1.png"
+            image="units/human-magi/mage-attack-magic1.png:200"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-magi/mage.png"
+            image="units/human-magi/mage.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-magi/mage-attack-staff1.png"
+            image="units/human-magi/mage-attack-staff1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/mage-attack-staff2.png"
+                image="units/human-magi/mage-attack-staff2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/mage-attack-staff2.png"
+                image="units/human-magi/mage-attack-staff2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-magi/mage-attack-magic1.png"
+            image="units/human-magi/mage-attack-magic1.png:50"
         [/frame]
         [frame]
-            begin=150
-            end=200
-            image="units/human-magi/mage.png"
+            image="units/human-magi/mage.png:50"
         [/frame]
     [/attack_anim]
     [female]
@@ -172,23 +149,20 @@
             {MAGIC_MISSILE 11 -20}
             {MAGIC_MISSILE_STAFF_FLARE -750 600 11 -20}
             [frame]
-                image="units/human-magi/mage+female-attack-magic1.png"
+                image="units/human-magi/mage+female-attack-magic[1,2].png:[100,350]"
             [/frame]
-            [frame]
-                image="units/human-magi/mage+female-attack-magic2.png"
-            [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/mage+female-attack-magic2.png"
+                    image="units/human-magi/mage+female-attack-magic2.png:250"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/mage+female-attack-magic2.png"
+                    image="units/human-magi/mage+female-attack-magic2.png:250"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/mage+female-attack-magic1.png"
+                image="units/human-magi/mage+female-attack-magic1.png:200"
             [/frame]
         [/attack_anim]
         [attack_anim]
@@ -196,26 +170,26 @@
                 name=staff
             [/filter_attack]
             [frame]
-                image="units/human-magi/mage+female.png"
+                image="units/human-magi/mage+female.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/mage+female-attack-staff1.png"
+                image="units/human-magi/mage+female-attack-staff1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/mage+female-attack-staff2.png"
+                    image="units/human-magi/mage+female-attack-staff2.png:200"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/mage+female-attack-staff2.png"
+                    image="units/human-magi/mage+female-attack-staff2.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/mage+female-attack-magic1.png"
+                image="units/human-magi/mage+female-attack-magic1.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/mage+female.png"
+                image="units/human-magi/mage+female.png:50"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/humans/Mage_Elder.cfg
===================================================================
--- data/core/units/humans/Mage_Elder.cfg	(revision 56322)
+++ data/core/units/humans/Mage_Elder.cfg	(working copy)
@@ -47,43 +47,32 @@
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-200
-            image="units/human-magi/elder-mage-ranged1.png"
+            image="units/human-magi/elder-mage-ranged1.png:25"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-magi/elder-mage-melee1.png"
+            image="units/human-magi/elder-mage-melee1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/elder-mage-melee2.png"
+                image="units/human-magi/elder-mage-melee2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/elder-mage-melee2.png"
+                image="units/human-magi/elder-mage-melee2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-magi/elder-mage-ranged1.png"
+            image="units/human-magi/elder-mage-ranged1.png:50"
         [/frame]
         [frame]
-            begin=150
-            end=200
-            image="units/human-magi/elder-mage.png"
+            image="units/human-magi/elder-mage.png:50"
         [/frame]
     [/attack_anim]
 
@@ -95,44 +84,24 @@
 
         {LIGHTNING_BOLT {DIRECTION_NUMBER} }
 
+        start_time=-300
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-200
-                image="units/human-magi/elder-mage-ranged1.png"
+                image="units/human-magi/elder-mage-ranged1.png:100"
                 sound=lightning.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-200
-                image="units/human-magi/elder-mage-ranged1.png"
+                image="units/human-magi/elder-mage-ranged1.png:100"
                 sound=lightning-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-magi/elder-mage-ranged2.png"
+            image="units/human-magi/elder-mage-ranged[2,3~1].png:[100,200,100,50]"
         [/frame]
-        [frame]
-            begin=-100
-            end=100
-            image="units/human-magi/elder-mage-ranged3.png"
-        [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-magi/elder-mage-ranged2.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=250
-            image="units/human-magi/elder-mage-ranged1.png"
-        [/frame]
     [/attack_anim]
 #enddef
 
Index: data/core/units/humans/Woodsman_Ranger.cfg
===================================================================
--- data/core/units/humans/Woodsman_Ranger.cfg	(revision 56322)
+++ data/core/units/humans/Woodsman_Ranger.cfg	(working copy)
@@ -75,55 +75,36 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-400
         [frame]
-            begin=-400
-            end=-325
-            image="units/human-outlaws/ranger-bow.png"
+            image="units/human-outlaws/ranger-bow.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-325
-                end=-250
-                image="units/human-outlaws/ranger-bow-attack1.png"
+                image="units/human-outlaws/ranger-bow-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-325
-                end=-250
-                image="units/human-outlaws/ranger-bow-attack1.png"
+                image="units/human-outlaws/ranger-bow-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-250
-            end=-100
-            image="units/human-outlaws/ranger-bow-attack2.png"
+            image="units/human-outlaws/ranger-bow-attack[2~4].png:[150,75*2]"
         [/frame]
         [frame]
-            begin=-100
-            end=-25
-            image="units/human-outlaws/ranger-bow-attack3.png"
+            image="units/human-outlaws/ranger-bow.png:50"
         [/frame]
-        [frame]
-            begin=-25
-            end=50
-            image="units/human-outlaws/ranger-bow-attack4.png"
-        [/frame]
-        [frame]
-            begin=50
-            end=100
-            image="units/human-outlaws/ranger-bow.png"
-        [/frame]
     [/attack_anim]
 
     [attack_anim]
@@ -133,40 +114,30 @@
         start_time=-275
 
         [frame]
-            duration=50
-            image="units/human-outlaws/ranger-sword-defend-1.png"
+            image="units/human-outlaws/ranger-sword-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-outlaws/ranger-sword-attack1.png"
+            image="units/human-outlaws/ranger-sword-attack1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-outlaws/ranger-sword-attack2.png"
+                image="units/human-outlaws/ranger-sword-attack2.png:100"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/human-outlaws/ranger-sword-attack2.png"
+                image="units/human-outlaws/ranger-sword-attack2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/human-outlaws/ranger-sword-attack3.png"
+            image="units/human-outlaws/ranger-sword-attack[3,4].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-outlaws/ranger-sword-attack4.png"
+            image="units/human-outlaws/ranger-sword-defend-1.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/human-outlaws/ranger-sword-defend-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Woodsman.cfg
===================================================================
--- data/core/units/humans/Woodsman.cfg	(revision 56322)
+++ data/core/units/humans/Woodsman.cfg	(working copy)
@@ -59,153 +59,68 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-peasants/woodsman-idle-1.png"
+            image="units/human-peasants/woodsman-idle-[1~14,3~1].png:[100,150,200,150*2,200,1200,200,1200,150*2,100*2,1300,200*2,150]"
         [/frame]
-        [frame]
-            duration=150
-            image="units/human-peasants/woodsman-idle-2.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-peasants/woodsman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/human-peasants/woodsman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/human-peasants/woodsman-idle-5.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-peasants/woodsman-idle-6.png"
-        [/frame]
-        [frame]
-            duration=1200
-            image="units/human-peasants/woodsman-idle-7.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-peasants/woodsman-idle-8.png"
-        [/frame]
-        [frame]
-            duration=1200
-            image="units/human-peasants/woodsman-idle-9.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/human-peasants/woodsman-idle-10.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/human-peasants/woodsman-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-peasants/woodsman-idle-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-peasants/woodsman-idle-13.png"
-        [/frame]
-        [frame]
-            duration=1300
-            image="units/human-peasants/woodsman-idle-14.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-peasants/woodsman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-peasants/woodsman-idle-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/human-peasants/woodsman-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=bow
         [/filter_attack]
         start_time=-445
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
         [frame]
-            duration=65
-            image="units/human-peasants/woodsman-bow.png"
+            image="units/human-peasants/woodsman-bow.png:65"
         [/frame]
         [frame]
-            duration=75
-            image="units/human-peasants/woodsman-bow-attack-1.png"
+            image="units/human-peasants/woodsman-bow-attack-[1,2].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/human-peasants/woodsman-bow-attack-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                duration=100
-                image="units/human-peasants/woodsman-bow-attack-3.png"
+                image="units/human-peasants/woodsman-bow-attack-3.png:100"
                 sound=bow-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-peasants/woodsman-bow-attack-3.png"
+                image="units/human-peasants/woodsman-bow-attack-3.png:100"
                 sound=bow.ogg
             [/frame]
         [/else]
         [frame]
-            duration=130
-            image="units/human-peasants/woodsman-bow-attack-4.png"
+            image="units/human-peasants/woodsman-bow-attack-[4,1].png:[130,65]"
         [/frame]
-        [frame]
-            duration=65
-            image="units/human-peasants/woodsman-bow-attack-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=dagger
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/human-peasants/woodsman.png"
+            image="units/human-peasants/woodsman.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=50
-                image="units/human-peasants/woodsman-melee-1.png"
+                image="units/human-peasants/woodsman-melee-1.png:200"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=50
-                image="units/human-peasants/woodsman-melee-2.png"
+                image="units/human-peasants/woodsman-melee-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-peasants/woodsman.png"
+            image="units/human-peasants/woodsman.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Outlaw_Footpad.cfg
===================================================================
--- data/core/units/humans/Outlaw_Footpad.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Footpad.cfg	(working copy)
@@ -55,13 +55,12 @@
             name=sling
         [/filter_attack]
         offset=0.0
+        start_time=-400
         [if]
             hits=yes
             {MISSILE_FRAME_STONE_HIT 5 -6}
             [frame]
-                begin=-400
-                end=-150
-                image="units/human-outlaws/footpad-attack1.png"
+                image="units/human-outlaws/footpad-attack1.png:250"
                 sound=sling.ogg
             [/frame]
         [/if]
@@ -69,108 +68,50 @@
             hits=no
             {MISSILE_FRAME_STONE_MISS 5 -6}
             [frame]
-                begin=-400
-                end=-150
-                image="units/human-outlaws/footpad-attack1.png"
+                image="units/human-outlaws/footpad-attack1.png:250"
                 sound=sling-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=50
-            image="units/human-outlaws/footpad-attack2.png"
+            image="units/human-outlaws/footpad-attack2.png:200"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=club
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-outlaws/footpad.png"
+            image="units/human-outlaws/footpad.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-outlaws/footpad-melee-1.png"
+            image="units/human-outlaws/footpad-melee-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-outlaws/footpad-melee-2.png"
+                image="units/human-outlaws/footpad-melee-2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-outlaws/footpad-melee-2.png"
+                image="units/human-outlaws/footpad-melee-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/human-outlaws/footpad-melee-3.png"
+            image="units/human-outlaws/footpad-melee-[3,4].png:100"
         [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/human-outlaws/footpad-melee-4.png"
-        [/frame]
     [/attack_anim]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
             duration=100
-            image="units/human-outlaws/footpad-idle-1.png"
+            image="units/human-outlaws/footpad-idle-[1~4,3,2,3,4~1].png:[100*3,200,100*3,200,100*3]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/footpad-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/footpad-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-outlaws/footpad-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/footpad-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/footpad-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/footpad-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-outlaws/footpad-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/footpad-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/footpad-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/footpad-idle-1.png"
-        [/frame]
     [/idle_anim]
     [female]
         name= _ "female^Footpad"
@@ -198,17 +139,17 @@
             [if]
                 {MISSILE_FRAME_STONE_HIT 5 -6}
                 [frame]
-                    image="units/human-outlaws/footpad+female-attack1.png"
+                    image="units/human-outlaws/footpad+female-attack1.png:250"
                 [/frame]
             [/if]
             [else]
                 {MISSILE_FRAME_STONE_MISS 5 -6}
                 [frame]
-                    image="units/human-outlaws/footpad+female-attack1.png"
+                    image="units/human-outlaws/footpad+female-attack1.png:250"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/footpad+female-attack2.png"
+                image="units/human-outlaws/footpad+female-attack2.png:200"
             [/frame]
         [/attack_anim]
         [attack_anim]
@@ -216,62 +157,29 @@
                 name=club
             [/filter_attack]
             [frame]
-                image="units/human-outlaws/footpad+female.png"
+                image="units/human-outlaws/footpad+female.png:50"
             [/frame]
             [frame]
-                image="units/human-outlaws/footpad+female-melee-1.png"
+                image="units/human-outlaws/footpad+female-melee-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-outlaws/footpad+female-melee-2.png"
+                    image="units/human-outlaws/footpad+female-melee-2.png:200"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/footpad+female-melee-2.png"
+                    image="units/human-outlaws/footpad+female-melee-2.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/footpad+female-melee-3.png"
+                image="units/human-outlaws/footpad+female-melee-[3,4].png:100"
             [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-melee-4.png"
-            [/frame]
         [/attack_anim]
         [idle_anim]
             [frame]
-                image="units/human-outlaws/footpad+female-idle-1.png"
+                image="units/human-outlaws/footpad+female-idle-[1~4,3,2,3,4~1].png:[100*3,200,100*3,200,100*3]"
             [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-2.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-3.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-4.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-3.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-2.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-3.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-4.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-3.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-2.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/footpad+female-idle-1.png"
-            [/frame]
         [/idle_anim]
     [/female]
 [/unit_type]
Index: data/core/units/humans/Outlaw_Thief.cfg
===================================================================
--- data/core/units/humans/Outlaw_Thief.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Thief.cfg	(working copy)
@@ -34,153 +34,73 @@
     [death]
         start_time=0
         [frame]
-            duration=100
-            image="units/human-outlaws/thief-die-1.png"
+            image="units/human-outlaws/thief-die-[1~7].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-die-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-die-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-die-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-die-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-die-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-die-7.png"
-        [/frame]
     [/death]
     [defend]
         hits=miss
+        start_time=-126
         [frame]
-            begin=-126
-            end=-125
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
         [frame]
-            begin=-125
-            end=-42
-            image="units/human-outlaws/thief-defend-1-1.png"
+            image="units/human-outlaws/thief-defend-1-[1,2,1].png:[83*2,84]"
         [/frame]
         [frame]
-            begin=-42
-            end=41
-            image="units/human-outlaws/thief-defend-1-2.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
-        [frame]
-            begin=41
-            end=125
-            image="units/human-outlaws/thief-defend-1-1.png"
-        [/frame]
-        [frame]
-            begin=125
-            end=126
-            image="units/human-outlaws/thief.png"
-        [/frame]
     [/defend]
     [defend]
         hits=miss
+        start_time=-126
         [frame]
-            begin=-126
-            end=-125
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
         [frame]
-            begin=-125
-            end=-42
-            image="units/human-outlaws/thief-defend-2-1.png"
+            image="units/human-outlaws/thief-defend-2-[1,2,1].png:[83*2,84]"
         [/frame]
         [frame]
-            begin=-42
-            end=41
-            image="units/human-outlaws/thief-defend-2-2.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
-        [frame]
-            begin=41
-            end=125
-            image="units/human-outlaws/thief-defend-2-1.png"
-        [/frame]
-        [frame]
-            begin=125
-            end=126
-            image="units/human-outlaws/thief.png"
-        [/frame]
     [/defend]
     [defend]
         hits=miss
+        start_time=-126
         [frame]
-            begin=-126
-            end=-125
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
         [frame]
-            begin=-125
-            end=-42
-            image="units/human-outlaws/thief-defend-3-1.png"
+            image="units/human-outlaws/thief-defend-3-[1,2,1].png:[83*2,84]"
         [/frame]
         [frame]
-            begin=-42
-            end=41
-            image="units/human-outlaws/thief-defend-3-2.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
-        [frame]
-            begin=41
-            end=125
-            image="units/human-outlaws/thief-defend-3-1.png"
-        [/frame]
-        [frame]
-            begin=125
-            end=126
-            image="units/human-outlaws/thief.png"
-        [/frame]
     [/defend]
     [defend]
         hits=kill
+        start_time=-126
         [frame]
-            begin=-126
-            end=-125
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
         [frame]
-            begin=-125
-            end=125
-            image="units/human-outlaws/thief-defend.png"
+            image="units/human-outlaws/thief-defend.png:250"
         [/frame]
         [frame]
-            begin=125
-            end=126
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
     [/defend]
     [defend]
         hits=hit
+        start_time=-126
         [frame]
-            begin=-126
-            end=-125
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
         [frame]
-            begin=-125
-            end=125
-            image="units/human-outlaws/thief-defend.png"
+            image="units/human-outlaws/thief-defend.png:250"
             sound={SOUND_LIST:HUMAN_HIT}
         [/frame]
         [frame]
-            begin=125
-            end=126
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:1"
         [/frame]
     [/defend]
     [attack]
@@ -199,33 +119,26 @@
         [filter_attack]
             name=dagger
         [/filter_attack]
+        start_time=-150
         [frame]
-            begin=-150
-            end=-100
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-outlaws/thief-attack.png"
+                image="units/human-outlaws/thief-attack.png:200"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-outlaws/thief-attack.png"
+                image="units/human-outlaws/thief-attack.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-outlaws/thief.png"
+            image="units/human-outlaws/thief.png:50"
         [/frame]
     [/attack_anim]
     [idle_anim]
@@ -234,143 +147,24 @@
 
         #pulls a "moneybag" out of hammerspace
         [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-1.png"
+            image="units/human-outlaws/thief-idle-[1~7].png:[100*4,200,150,500]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-4.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-outlaws/thief-idle-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/human-outlaws/thief-idle-6.png"
-        [/frame]
-        [frame]
-            duration=500
-            image="units/human-outlaws/thief-idle-7.png"
-        [/frame]
 
         #begin toss of pouch
         [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-8.png"
+            image="units/human-outlaws/thief-idle-[8~12,11~8].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-8.png"
-        [/frame]
 
         #catches it for a moment, and does a second toss
         [frame]
             duration=300
-            image="units/human-outlaws/thief-idle-7.png"
+            image="units/human-outlaws/thief-idle-[7~12,11~8].png:[300,100*9]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-8.png"
-        [/frame]
 
         #catches it, and returns it to hammerspace
         [frame]
-            duration=500
-            image="units/human-outlaws/thief-idle-7.png"
+            image="units/human-outlaws/thief-idle-[7~1].png:[500,150,200,100*4]"
         [/frame]
-        [frame]
-            duration=150
-            image="units/human-outlaws/thief-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-outlaws/thief-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-outlaws/thief-idle-1.png"
-        [/frame]
     [/idle_anim]
 
     [female]
@@ -394,106 +188,63 @@
         [death]
             start_time=0
             [frame]
-                duration=100
-                image="units/human-outlaws/thief+female-die-1.png"
+                image="units/human-outlaws/thief+female-die-[1~7].png:100"
             [/frame]
-            [frame]
-                duration=100
-                image="units/human-outlaws/thief+female-die-2.png"
-            [/frame]
-            [frame]
-                duration=100
-                image="units/human-outlaws/thief+female-die-3.png"
-            [/frame]
-            [frame]
-                duration=100
-                image="units/human-outlaws/thief+female-die-4.png"
-            [/frame]
-            [frame]
-                duration=100
-                image="units/human-outlaws/thief+female-die-5.png"
-            [/frame]
-            [frame]
-                duration=100
-                image="units/human-outlaws/thief+female-die-6.png"
-            [/frame]
-            [frame]
-                duration=100
-                image="units/human-outlaws/thief+female-die-7.png"
-            [/frame]
         [/death]
         [defend]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female-defend-1-1.png"
+                image="units/human-outlaws/thief+female-defend-1-[1,2,1].png:[83*2,84]"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female-defend-1-2.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-defend-1-1.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female.png"
-            [/frame]
         [/defend]
         [defend]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female-defend-2-1.png"
+                image="units/human-outlaws/thief+female-defend-2-[1,2,1].png:[83*2,84]"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female-defend-2-2.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-defend-2-1.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female.png"
-            [/frame]
         [/defend]
         [defend]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female-defend-3-1.png"
+                image="units/human-outlaws/thief+female-defend-3-[1,2,1].png:[83*2,84]"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female-defend-3-2.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-defend-3-1.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female.png"
-            [/frame]
         [/defend]
         [defend]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female-defend.png"
+                image="units/human-outlaws/thief+female-defend.png:250"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
         [/defend]
         [defend]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female-defend.png"
+                image="units/human-outlaws/thief+female-defend.png:250"
                 sound={SOUND_LIST:HUMAN_FEMALE_HIT}
             [/frame]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:1"
             [/frame]
         [/defend]
         [attack_anim]
@@ -501,129 +252,42 @@
                 name=dagger
             [/filter_attack]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:50"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-outlaws/thief+female-attack.png"
+                    image="units/human-outlaws/thief+female-attack.png:200"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/thief+female-attack.png"
+                    image="units/human-outlaws/thief+female-attack.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/thief+female.png"
+                image="units/human-outlaws/thief+female.png:50"
             [/frame]
         [/attack_anim]
         [idle_anim]
             #pulls a "moneybag" out of hammerspace
             [frame]
-                image="units/human-outlaws/thief+female-idle-1.png"
+                image="units/human-outlaws/thief+female-idle-[1~7].png:[100*4,200,150,500]"
             [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-2.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-3.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-4.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-5.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-6.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-7.png"
-            [/frame]
 
             #begin toss of pouch
             [frame]
-                image="units/human-outlaws/thief+female-idle-8.png"
+                image="units/human-outlaws/thief+female-idle-[8~12,11~8].png:100"
             [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-9.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-10.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-11.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-12.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-11.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-10.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-9.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-8.png"
-            [/frame]
 
             #catches it for a moment, and does a second toss
             [frame]
-                image="units/human-outlaws/thief+female-idle-7.png"
+                image="units/human-outlaws/thief+female-idle-[7~12,11~8].png:[300,100*9]"
             [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-8.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-9.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-10.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-11.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-12.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-11.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-10.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-9.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-8.png"
-            [/frame]
 
             #catches it, and returns it to hammerspace
             [frame]
-                image="units/human-outlaws/thief+female-idle-7.png"
+                image="units/human-outlaws/thief+female-idle-[7~1].png:[500,150,200,100*4]"
             [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-6.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-5.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-4.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-3.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-2.png"
-            [/frame]
-            [frame]
-                image="units/human-outlaws/thief+female-idle-1.png"
-            [/frame]
         [/idle_anim]
     [/female]
 [/unit_type]
Index: data/core/units/humans/Mage_Great.cfg
===================================================================
--- data/core/units/humans/Mage_Great.cfg	(revision 56322)
+++ data/core/units/humans/Mage_Great.cfg	(working copy)
@@ -64,68 +64,49 @@
         {MISSILE_FRAME_FIREBALL}
         start_time=-575
         [frame]
-            duration=50
-            image="units/human-magi/great-mage.png"
+            image="units/human-magi/great-mage.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-magi/great-mage-attack-magic-1.png"
+            image="units/human-magi/great-mage-attack-magic-1.png:100"
             sound=fire.wav
         [/frame]
         [frame]
-            duration=150
-            image="units/human-magi/great-mage-attack-magic-2.png"
+            image="units/human-magi/great-mage-attack-magic-[2,1].png:[150,75]"
         [/frame]
         [frame]
-            duration=75
-            image="units/human-magi/great-mage-attack-magic-1.png"
+            image="units/human-magi/great-mage.png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/human-magi/great-mage.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-magi/great-mage.png"
+            image="units/human-magi/great-mage.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-magi/great-mage-attack-staff-1.png"
+            image="units/human-magi/great-mage-attack-staff-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/great-mage-attack-staff-2.png"
+                image="units/human-magi/great-mage-attack-staff-2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-magi/great-mage-attack-staff-2.png"
+                image="units/human-magi/great-mage-attack-staff-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-magi/great-mage-attack-magic-1.png"
+            image="units/human-magi/great-mage-attack-magic-1.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=250
-            image="units/human-magi/great-mage.png"
+            image="units/human-magi/great-mage.png:75"
         [/frame]
     [/attack_anim]
     [female]
@@ -153,46 +134,43 @@
             [/filter_attack]
             {MISSILE_FRAME_FIREBALL}
             [frame]
-                image="units/human-magi/great-mage+female.png"
+                image="units/human-magi/great-mage+female.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/great-mage+female-attack-magic-1.png"
+                image="units/human-magi/great-mage+female-attack-magic-1.png:100"
             [/frame]
             [frame]
-                image="units/human-magi/great-mage+female-attack-magic-2.png"
+                image="units/human-magi/great-mage+female-attack-magic-[2,1].png:[150,75]"
             [/frame]
             [frame]
-                image="units/human-magi/great-mage+female-attack-magic-1.png"
+                image="units/human-magi/great-mage+female.png:75"
             [/frame]
-            [frame]
-                image="units/human-magi/great-mage+female.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=staff
             [/filter_attack]
             [frame]
-                image="units/human-magi/great-mage+female.png"
+                image="units/human-magi/great-mage+female.png:50"
             [/frame]
             [frame]
-                image="units/human-magi/great-mage+female-attack-staff-1.png"
+                image="units/human-magi/great-mage+female-attack-staff-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-magi/great-mage+female-attack-staff-2.png"
+                    image="units/human-magi/great-mage+female-attack-staff-2.png:200"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-magi/great-mage+female-attack-staff-2.png"
+                    image="units/human-magi/great-mage+female-attack-staff-2.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-magi/great-mage+female-attack-magic-1.png"
+                image="units/human-magi/great-mage+female-attack-magic-1.png:75"
             [/frame]
             [frame]
-                image="units/human-magi/great-mage+female.png"
+                image="units/human-magi/great-mage+female.png:75"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/humans/Royal_Warrior.cfg
===================================================================
--- data/core/units/humans/Royal_Warrior.cfg	(revision 56322)
+++ data/core/units/humans/Royal_Warrior.cfg	(working copy)
@@ -43,38 +43,29 @@
         [filter_attack]
             name=mace
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-loyalists/royal-warrior.png"
+            image="units/human-loyalists/royal-warrior.png:50"
         [/frame]
         [frame]
-            begin=-150
-            end=-75
-            image="units/human-loyalists/royal-warrior-attack1.png"
+            image="units/human-loyalists/royal-warrior-attack1.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=100
-                image="units/human-loyalists/royal-warrior-attack2.png"
+                image="units/human-loyalists/royal-warrior-attack2.png:175"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=100
-                image="units/human-loyalists/royal-warrior-attack2.png"
+                image="units/human-loyalists/royal-warrior-attack2.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/human-loyalists/royal-warrior.png"
+            image="units/human-loyalists/royal-warrior.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Shock_Trooper.cfg
===================================================================
--- data/core/units/humans/Loyalist_Shock_Trooper.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Shock_Trooper.cfg	(working copy)
@@ -45,48 +45,23 @@
         [filter_attack]
             name=morning star
         [/filter_attack]
+        start_time=-260
         [if]
             hits=yes
             [frame]
-                begin=-260
-                end=-175
-                image="units/human-loyalists/shocktrooper-attack-1.png"
+                image="units/human-loyalists/shocktrooper-attack-1.png:85"
                 sound=flail.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-260
-                end=-175
-                image="units/human-loyalists/shocktrooper-attack-1.png"
+                image="units/human-loyalists/shocktrooper-attack-1.png:85"
                 sound=flail-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-175
-            end=-75
-            image="units/human-loyalists/shocktrooper-attack-2.png"
+            image="units/human-loyalists/shocktrooper-attack-[2~6].png:[100,125,50*3]"
         [/frame]
-        [frame]
-            begin=-75
-            end=50
-            image="units/human-loyalists/shocktrooper-attack-3.png"
-        [/frame]
-        [frame]
-            begin=50
-            end=100
-            image="units/human-loyalists/shocktrooper-attack-4.png"
-        [/frame]
-        [frame]
-            begin=100
-            end=150
-            image="units/human-loyalists/shocktrooper-attack-5.png"
-        [/frame]
-        [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/shocktrooper-attack-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Heavy_Infantryman.cfg
===================================================================
--- data/core/units/humans/Loyalist_Heavy_Infantryman.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Heavy_Infantryman.cfg	(working copy)
@@ -46,105 +46,33 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-1.png"
+            image="units/human-loyalists/heavy-infantry-idle-[1~9,8~1].png:[100*3,300,100*3,1000*3,100*7]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-3.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/human-loyalists/heavy-infantry-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-7.png"
-        [/frame]
-        [frame]
-            duration=1000
-            image="units/human-loyalists/heavy-infantry-idle-8.png"
-        [/frame]
-        [frame]
-            duration=1000
-            image="units/human-loyalists/heavy-infantry-idle-9.png"
-        [/frame]
-        [frame]
-            duration=1000
-            image="units/human-loyalists/heavy-infantry-idle-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/heavy-infantry-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=mace
         [/filter_attack]
+        start_time=-230
         [frame]
-            begin=-230
-            end=-100
-            image="units/human-loyalists/heavyinfantry-attack-1.png"
+            image="units/human-loyalists/heavyinfantry-attack-1.png:130"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/heavyinfantry-attack-2.png"
+                image="units/human-loyalists/heavyinfantry-attack-2.png:200"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/human-loyalists/heavyinfantry-attack-2.png"
+                image="units/human-loyalists/heavyinfantry-attack-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/heavyinfantry.png"
+            image="units/human-loyalists/heavyinfantry.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Bowman.cfg
===================================================================
--- data/core/units/humans/Loyalist_Bowman.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Bowman.cfg	(working copy)
@@ -54,49 +54,37 @@
         [filter_attack]
             name=bow
         [/filter_attack]
-        start_time=-445
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            duration=65
-            image="units/human-loyalists/bowman-bow.png"
+            image="units/human-loyalists/bowman-bow.png:65"
         [/frame]
         [frame]
-            duration=75
-            image="units/human-loyalists/bowman-bow-attack-1.png"
+            image="units/human-loyalists/bowman-bow-attack-[1,2].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/bowman-bow-attack-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                duration=100
-                image="units/human-loyalists/bowman-bow-attack-3.png"
+                image="units/human-loyalists/bowman-bow-attack-3.png:100"
                 sound=bow-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-loyalists/bowman-bow-attack-3.png"
+                image="units/human-loyalists/bowman-bow-attack-3.png:100"
                 sound=bow.ogg
             [/frame]
         [/else]
         [frame]
             duration=130
-            image="units/human-loyalists/bowman-bow-attack-4.png"
+            image="units/human-loyalists/bowman-bow-attack-[4,1].png:[130,65]"
         [/frame]
-        [frame]
-            duration=65
-            image="units/human-loyalists/bowman-bow-attack-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -105,40 +93,30 @@
         start_time=-275
 
         [frame]
-            duration=50
-            image="units/human-loyalists/bowman-melee-defend-1.png"
+            image="units/human-loyalists/bowman-melee-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-loyalists/bowman-melee-attack-1.png"
+            image="units/human-loyalists/bowman-melee-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-loyalists/bowman-melee-attack-2.png"
+                image="units/human-loyalists/bowman-melee-attack-2.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/human-loyalists/bowman-melee-attack-2.png"
+                image="units/human-loyalists/bowman-melee-attack-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/human-loyalists/bowman-melee-attack-3.png"
+            image="units/human-loyalists/bowman-melee-attack-[3,4].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-loyalists/bowman-melee-attack-4.png"
+            image="units/human-loyalists/bowman-melee-defend-1.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/human-loyalists/bowman-melee-defend-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Woodsman_Huntsman.cfg
===================================================================
--- data/core/units/humans/Woodsman_Huntsman.cfg	(revision 56322)
+++ data/core/units/humans/Woodsman_Huntsman.cfg	(working copy)
@@ -70,83 +70,62 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-400
         [frame]
-            begin=-400
-            end=-325
-            image="units/human-outlaws/huntsman-bow.png"
+            image="units/human-outlaws/huntsman-bow.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-325
-                end=-250
-                image="units/human-outlaws/huntsman-attack1.png"
+                image="units/human-outlaws/huntsman-attack1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-325
-                end=-250
-                image="units/human-outlaws/huntsman-attack1.png"
+                image="units/human-outlaws/huntsman-attack1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-250
-            end=-100
-            image="units/human-outlaws/huntsman-attack2.png"
+            image="units/human-outlaws/huntsman-attack[2,3].png:[150,100]"
         [/frame]
         [frame]
-            begin=-100
-            end=0
-            image="units/human-outlaws/huntsman-attack3.png"
+            image="units/human-outlaws/huntsman-bow.png:100"
         [/frame]
-        [frame]
-            begin=0
-            end=100
-            image="units/human-outlaws/huntsman-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=dagger
         [/filter_attack]
         hits=yes
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-outlaws/huntsman.png"
+            image="units/human-outlaws/huntsman.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/human-outlaws/huntsman-attack-melee.png"
+                image="units/human-outlaws/huntsman-attack-melee.png:250"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/human-outlaws/huntsman-attack-melee.png"
+                image="units/human-outlaws/huntsman-attack-melee.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/human-outlaws/huntsman.png"
+            image="units/human-outlaws/huntsman.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Dragoon.cfg
===================================================================
--- data/core/units/humans/Loyalist_Dragoon.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Dragoon.cfg	(working copy)
@@ -32,10 +32,9 @@
         image="portraits/humans/transparent/cavalier.png"
     [/portrait]
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/human-loyalists/dragoon-moving.png"
+            image="units/human-loyalists/dragoon-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/human-loyalists/dragoon-defend.png" "units/human-loyalists/dragoon.png" {SOUND_LIST:HORSE_HIT} }
@@ -66,93 +65,37 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/dragoon-idle-1.png"
+            image="units/human-loyalists/dragoon-idle-[1~6,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/dragoon-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/dragoon-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/dragoon-idle-4.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/dragoon-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/dragoon-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/dragoon-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/dragoon-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        start_time=-1100
         [frame]
-            begin=-1100
-            end=-1000
-            image="units/human-loyalists/dragoon-ranged-1.png"
+            image="units/human-loyalists/dragoon-ranged-[1~5].png:100"
         [/frame]
-        [frame]
-            begin=-1000
-            end=-900
-            image="units/human-loyalists/dragoon-ranged-2.png"
-        [/frame]
-        [frame]
-            begin=-800
-            end=-700
-            image="units/human-loyalists/dragoon-ranged-3.png"
-        [/frame]
-        [frame]
-            begin=-700
-            end=-600
-            image="units/human-loyalists/dragoon-ranged-4.png"
-        [/frame]
-        [frame]
-            begin=-600
-            end=-500
-            image="units/human-loyalists/dragoon-ranged-5.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-500
-                end=-300
-                image="units/human-loyalists/dragoon-ranged-6.png"
+                image="units/human-loyalists/dragoon-ranged-6.png:200"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-500
-                end=-300
-                image="units/human-loyalists/dragoon-ranged-6.png"
+                image="units/human-loyalists/dragoon-ranged-6.png:200"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-300
-            end=-0
-            image="units/human-loyalists/dragoon-ranged-7.png"
+            image="units/human-loyalists/dragoon-ranged-7.png:300"
         [/frame]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
@@ -161,44 +104,33 @@
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-200
-            image="units/human-loyalists/dragoon.png"
+            image="units/human-loyalists/dragoon.png:25"
         [/frame]
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-loyalists/dragoon-moving.png"
+            image="units/human-loyalists/dragoon-moving.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/dragoon-attack.png"
+                image="units/human-loyalists/dragoon-attack.png:300"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/dragoon-attack.png"
+                image="units/human-loyalists/dragoon-attack.png:300"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/dragoon-moving.png"
+            image="units/human-loyalists/dragoon-moving.png:50"
         [/frame]
         [frame]
-            begin=200
-            end=225
-            image="units/human-loyalists/dragoon.png"
+            image="units/human-loyalists/dragoon.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Cavalryman.cfg
===================================================================
--- data/core/units/humans/Loyalist_Cavalryman.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Cavalryman.cfg	(working copy)
@@ -48,16 +48,10 @@
         cold=80
     [/resistance]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=200
-            image="units/human-loyalists/cavalryman-die-1.png"
+            image="units/human-loyalists/cavalryman-die-[1,2].png:200"
         [/frame]
-        [frame]
-            begin=200
-            end=400
-            image="units/human-loyalists/cavalryman-die-2.png"
-        [/frame]
     [/death]
     [attack]
         name=sword
@@ -72,44 +66,33 @@
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-225
         [frame]
-            begin=-225
-            end=-200
-            image="units/human-loyalists/cavalryman.png"
+            image="units/human-loyalists/cavalryman.png:25"
         [/frame]
         [frame]
-            begin=-200
-            end=-150
-            image="units/human-loyalists/cavalryman-moving.png"
+            image="units/human-loyalists/cavalryman-moving.png:50"
             sound=horse-canter.wav
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/cavalryman-attack.png"
+                image="units/human-loyalists/cavalryman-attack.png:300"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=150
-                image="units/human-loyalists/cavalryman-attack.png"
+                image="units/human-loyalists/cavalryman-attack.png:300"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/cavalryman-moving.png"
+            image="units/human-loyalists/cavalryman-moving.png:50"
         [/frame]
         [frame]
-            begin=200
-            end=225
-            image="units/human-loyalists/cavalryman.png"
+            image="units/human-loyalists/cavalryman.png:25"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Outlaw_Fugitive.cfg
===================================================================
--- data/core/units/humans/Outlaw_Fugitive.cfg	(revision 56322)
+++ data/core/units/humans/Outlaw_Fugitive.cfg	(working copy)
@@ -59,13 +59,12 @@
             name=sling
         [/filter_attack]
         offset=0.0
+        start_time=-400
         [if]
             hits=yes
             {MISSILE_FRAME_STONE_HIT 5 -6}
             [frame]
-                begin=-400
-                end=-150
-                image="units/human-outlaws/fugitive-ranged-1.png"
+                image="units/human-outlaws/fugitive-ranged-1.png:250"
                 sound=sling.ogg
             [/frame]
         [/if]
@@ -73,49 +72,38 @@
             hits=no
             {MISSILE_FRAME_STONE_MISS 5 -6}
             [frame]
-                begin=-400
-                end=-150
-                image="units/human-outlaws/fugitive-ranged-1.png"
+                image="units/human-outlaws/fugitive-ranged-1.png:250"
                 sound=sling-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=50
-            image="units/human-outlaws/fugitive-ranged-2.png"
+            image="units/human-outlaws/fugitive-ranged-2.png:200"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=mace-spiked
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-outlaws/fugitive-melee-1.png"
+            image="units/human-outlaws/fugitive-melee-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/human-outlaws/fugitive-melee-2.png"
+                image="units/human-outlaws/fugitive-melee-2.png:150"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/human-outlaws/fugitive-melee-2.png"
+                image="units/human-outlaws/fugitive-melee-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-outlaws/fugitive-melee-3.png"
+            image="units/human-outlaws/fugitive-melee-3.png:100"
         [/frame]
     [/attack_anim]
     [female]
@@ -144,17 +132,17 @@
             [if]
                 {MISSILE_FRAME_STONE_HIT 5 -6}
                 [frame]
-                    image="units/human-outlaws/fugitive+female-ranged-1.png"
+                    image="units/human-outlaws/fugitive+female-ranged-1.png:250"
                 [/frame]
             [/if]
             [else]
                 {MISSILE_FRAME_STONE_MISS 5 -6}
                 [frame]
-                    image="units/human-outlaws/fugitive+female-ranged-1.png"
+                    image="units/human-outlaws/fugitive+female-ranged-1.png:250"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/fugitive+female-ranged-2.png"
+                image="units/human-outlaws/fugitive+female-ranged-2.png:200"
             [/frame]
         [/attack_anim]
         [attack_anim]
@@ -162,20 +150,20 @@
                 name=mace-spiked
             [/filter_attack]
             [frame]
-                image="units/human-outlaws/fugitive+female-melee-1.png"
+                image="units/human-outlaws/fugitive+female-melee-1.png:100"
             [/frame]
             [if]
                 [frame]
-                    image="units/human-outlaws/fugitive+female-melee-2.png"
+                    image="units/human-outlaws/fugitive+female-melee-2.png:150"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/human-outlaws/fugitive+female-melee-2.png"
+                    image="units/human-outlaws/fugitive+female-melee-2.png:150"
                 [/frame]
             [/else]
             [frame]
-                image="units/human-outlaws/fugitive+female-melee-3.png"
+                image="units/human-outlaws/fugitive+female-melee-3.png:100"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/humans/Loyalist_Master_Bowman.cfg
===================================================================
--- data/core/units/humans/Loyalist_Master_Bowman.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Master_Bowman.cfg	(working copy)
@@ -55,95 +55,45 @@
         start_time=0
         [frame]
             duration=1000
-            image="units/human-loyalists/masterbowman-idle-1.png"
+            image="units/human-loyalists/masterbowman-idle-[1~4,3,4,3,4,3,4,1].png:[1000,400,100,200,100,200,100,200,100,400,100]"
         [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/masterbowman-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/masterbowman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-loyalists/masterbowman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/masterbowman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-loyalists/masterbowman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/masterbowman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/human-loyalists/masterbowman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/masterbowman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=400
-            image="units/human-loyalists/masterbowman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/masterbowman-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=bow
         [/filter_attack]
         start_time=-445
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
         [frame]
-            duration=65
-            image="units/human-loyalists/masterbowman-bow.png"
+            image="units/human-loyalists/masterbowman-bow.png:65"
         [/frame]
         [frame]
-            duration=75
-            image="units/human-loyalists/masterbowman-bow-attack-1.png"
+            image="units/human-loyalists/masterbowman-bow-attack-[1,2].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/human-loyalists/masterbowman-bow-attack-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                duration=100
-                image="units/human-loyalists/masterbowman-bow-attack-3.png"
+                image="units/human-loyalists/masterbowman-bow-attack-3.png:100"
                 sound=bow-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-loyalists/masterbowman-bow-attack-3.png"
+                image="units/human-loyalists/masterbowman-bow-attack-3.png:100"
                 sound=bow.ogg
             [/frame]
         [/else]
         [frame]
-            duration=130
-            image="units/human-loyalists/masterbowman-bow-attack-4.png"
+            image="units/human-loyalists/masterbowman-bow-attack-4.png:130"
         [/frame]
         [frame]
-            duration=65
-            image="units/human-loyalists/masterbowman-bow-attack-1.png"
+            image="units/human-loyalists/masterbowman-bow-attack-1.png:65"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -153,40 +103,30 @@
         start_time=-275
 
         [frame]
-            duration=50
-            image="units/human-loyalists/masterbowman-melee-defend-1.png"
+            image="units/human-loyalists/masterbowman-melee-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-loyalists/masterbowman-melee-attack-1.png"
+            image="units/human-loyalists/masterbowman-melee-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/human-loyalists/masterbowman-melee-attack-2.png"
+                image="units/human-loyalists/masterbowman-melee-attack-2.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/human-loyalists/masterbowman-melee-attack-2.png"
+                image="units/human-loyalists/masterbowman-melee-attack-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/human-loyalists/masterbowman-melee-attack-3.png"
+            image="units/human-loyalists/masterbowman-melee-attack-[3,4].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/human-loyalists/masterbowman-melee-attack-4.png"
+            image="units/human-loyalists/masterbowman-melee-defend-1.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/human-loyalists/masterbowman-melee-defend-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Fencer.cfg
===================================================================
--- data/core/units/humans/Loyalist_Fencer.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Fencer.cfg	(working copy)
@@ -41,134 +41,57 @@
     [standing_anim]
         start_time=0
         [frame]
-            duration=80
-            image="units/human-loyalists/fencer-stand-1.png"
+            image="units/human-loyalists/fencer-stand-[1~8].png:80"
         [/frame]
-        [frame]
-            duration=80
-            image="units/human-loyalists/fencer-stand-2.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/human-loyalists/fencer-stand-3.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/human-loyalists/fencer-stand-4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/human-loyalists/fencer-stand-5.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/human-loyalists/fencer-stand-6.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/human-loyalists/fencer-stand-7.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/human-loyalists/fencer-stand-8.png"
-        [/frame]
     [/standing_anim]
     [defend]
         hits=miss
+        start_time=-126
         [frame]
-            begin=-126
-            end=-125
-            image="units/human-loyalists/fencer.png"
+            image="units/human-loyalists/fencer.png:1"
         [/frame]
         [frame]
-            begin=-125
-            end=-42
-            image="units/human-loyalists/fencer-defend-1-1.png"
+            image="units/human-loyalists/fencer-defend-1-[1,2,1].png:[83,83,84]"
         [/frame]
         [frame]
-            begin=-42
-            end=41
-            image="units/human-loyalists/fencer-defend-1-2.png"
+            image="units/human-loyalists/fencer-defend-1-1.png:1"
         [/frame]
-        [frame]
-            begin=41
-            end=125
-            image="units/human-loyalists/fencer-defend-1-1.png"
-        [/frame]
-        [frame]
-            begin=125
-            end=126
-            image="units/human-loyalists/fencer-defend-1-1.png"
-        [/frame]
     [/defend]
     [defend]
         hits=hit
+        start_time=-126
         [frame]
-            begin=-126
-            end=-125
-            image="units/human-loyalists/fencer.png"
+            image="units/human-loyalists/fencer.png:1"
         [/frame]
         [frame]
-            begin=-125
-            end=-25
-            image="units/human-loyalists/fencer-defend.png"
+            image="units/human-loyalists/fencer-defend.png:100"
         [/frame]
         [frame]
-            begin=-25
-            end=125
-            image="units/human-loyalists/fencer-defend.png"
+            image="units/human-loyalists/fencer-defend.png:150"
             sound={SOUND_LIST:HUMAN_HIT}
         [/frame]
         [frame]
-            begin=125
-            end=126
-            image="units/human-loyalists/fencer.png"
+            image="units/human-loyalists/fencer.png:1"
         [/frame]
     [/defend]
     [defend]
         hits=kill
+        start_time=-126
         [frame]
-            begin=-126
-            end=-125
-            image="units/human-loyalists/fencer.png"
+            image="units/human-loyalists/fencer.png:1"
         [/frame]
         [frame]
-            begin=-125
-            end=125
-            image="units/human-loyalists/fencer-defend.png"
+            image="units/human-loyalists/fencer-defend.png:250"
         [/frame]
         [frame]
-            begin=125
-            end=126
-            image="units/human-loyalists/fencer.png"
+            image="units/human-loyalists/fencer.png:1"
         [/frame]
     [/defend]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=100
-            image="units/human-loyalists/fencer-die1.png"
+            image="units/human-loyalists/fencer-die[1~5].png:100"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-loyalists/fencer-die2.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/human-loyalists/fencer-die3.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=400
-            image="units/human-loyalists/fencer-die4.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=500
-            image="units/human-loyalists/fencer-die5.png"
-        [/frame]
     [/death]
     [attack]
         name=saber
@@ -183,80 +106,22 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-1.png"
+            image="units/human-loyalists/fencer-idle-[1~7,6~1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/human-loyalists/fencer-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=saber
         [/filter_attack]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-250
-            image="units/human-loyalists/fencer-attack-1.png"
-            offset=0.0~-0.07
+            image="units/human-loyalists/fencer-attack-[1,2].png:50"
+            offset=0.0~-0.07,-0.07~-0.15
         [/frame]
-        [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/fencer-attack-2.png"
-            offset=-0.07~-0.15
-        [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-200
-                end=-150
-                image="units/human-loyalists/fencer-attack-3.png"
+                image="units/human-loyalists/fencer-attack-3.png:50"
                 sound={SOUND_LIST:SWORD_SWISH}
                 offset=-0.15~-0.25
             [/frame]
@@ -264,54 +129,14 @@
         [else]
             hits=no
             [frame]
-                begin=-200
-                end=-150
-                image="units/human-loyalists/fencer-attack-3.png"
+                image="units/human-loyalists/fencer-attack-3.png:50"
                 sound={SOUND_LIST:MISS}
                 offset=-0.15~-0.25
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=-100
-            image="units/human-loyalists/fencer-attack-4.png"
-            offset=-0.25~-0.2
+            image="units/human-loyalists/fencer-attack-[4~9,1].png:50"
+            offset=-0.25~-0.2,-0.2~-0.1,-0.1~0.25,0.25~0.55,0.55~0.25,0.25~0.1,0.1~0.0
         [/frame]
-        [frame]
-            begin=-100
-            end=-50
-            image="units/human-loyalists/fencer-attack-5.png"
-            offset=-0.2~-0.1
-        [/frame]
-        [frame]
-            begin=-50
-            end=0
-            image="units/human-loyalists/fencer-attack-6.png"
-            offset=-0.1~0.25
-        [/frame]
-        [frame]
-            begin=0
-            end=50
-            image="units/human-loyalists/fencer-attack-7.png"
-            offset=0.25~0.55
-        [/frame]
-        [frame]
-            begin=50
-            end=100
-            image="units/human-loyalists/fencer-attack-8.png"
-            offset=0.55~0.25
-        [/frame]
-        [frame]
-            begin=100
-            end=150
-            image="units/human-loyalists/fencer-attack-9.png"
-            offset=0.25~0.1
-        [/frame]
-        [frame]
-            begin=150
-            end=200
-            image="units/human-loyalists/fencer-attack-1.png"
-            offset=0.1~0.0
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/humans/Loyalist_Grand_Marshal.cfg
===================================================================
--- data/core/units/humans/Loyalist_Grand_Marshal.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Grand_Marshal.cfg	(working copy)
@@ -66,124 +66,64 @@
         number=3
     [/attack]
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=75
-            image="units/human-loyalists/marshal-die-1.png"
+            image="units/human-loyalists/marshal-die-[1~10].png:[75*8,175,125]"
         [/frame]
-        [frame]
-            begin=75
-            end=150
-            image="units/human-loyalists/marshal-die-2.png"
-        [/frame]
-        [frame]
-            begin=150
-            end=225
-            image="units/human-loyalists/marshal-die-3.png"
-        [/frame]
-        [frame]
-            begin=225
-            end=300
-            image="units/human-loyalists/marshal-die-4.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=375
-            image="units/human-loyalists/marshal-die-5.png"
-        [/frame]
-        [frame]
-            begin=375
-            end=450
-            image="units/human-loyalists/marshal-die-6.png"
-        [/frame]
-        [frame]
-            begin=450
-            end=525
-            image="units/human-loyalists/marshal-die-7.png"
-        [/frame]
-        [frame]
-            begin=525
-            end=600
-            image="units/human-loyalists/marshal-die-8.png"
-        [/frame]
-        [frame]
-            begin=600
-            end=875
-            image="units/human-loyalists/marshal-die-9.png"
-        [/frame]
-        [frame]
-            begin=875
-            end=1000
-            image="units/human-loyalists/marshal-die-10.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-400
         [frame]
-            begin=-400
-            end=-300
-            image="units/human-loyalists/marshal-crossbow.png"
+            image="units/human-loyalists/marshal-crossbow.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-150
-                image="units/human-loyalists/marshal-crossbow-attack1.png"
+                image="units/human-loyalists/marshal-crossbow-attack1.png:150"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-150
-                image="units/human-loyalists/marshal-crossbow-attack1.png"
+                image="units/human-loyalists/marshal-crossbow-attack1.png:150"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=0
-            image="units/human-loyalists/marshal-crossbow-attack2.png"
+            image="units/human-loyalists/marshal-crossbow-attack2.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-250
-            image="units/human-loyalists/marshal.png"
+            image="units/human-loyalists/marshal.png:50"
             offset=0.0~0.1
         [/frame]
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/marshal-defend-1.png"
+            image="units/human-loyalists/marshal-defend-1.png:50"
             offset=0.1~0.15
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/marshal-attack-sword1.png"
+            image="units/human-loyalists/marshal-attack-sword1.png:100"
             offset=0.15~0.35
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=-25
-                image="units/human-loyalists/marshal-attack-sword2.png"
+                image="units/human-loyalists/marshal-attack-sword2.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
                 offset=0.35~0.45
             [/frame]
@@ -191,41 +131,17 @@
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=-25
-                image="units/human-loyalists/marshal-attack-sword2.png"
+                image="units/human-loyalists/marshal-attack-sword2.png:75"
                 sound={SOUND_LIST:MISS}
                 offset=0.35~0.45
             [/frame]
         [/else]
         [frame]
-            begin=-25
-            end=75
-            image="units/human-loyalists/marshal-attack-sword3.png"
-            offset=0.45~0.5
+            image="units/human-loyalists/marshal-attack-sword[3,4*2,5].png:[100,20,30,75]"
+            offset=0.45~0.5,0.5,0.5~0.4,0.4~0.2
         [/frame]
         [frame]
-            begin=75
-            end=95
-            image="units/human-loyalists/marshal-attack-sword4.png"
-            offset=0.5
-        [/frame]
-        [frame]
-            begin=95
-            end=125
-            image="units/human-loyalists/marshal-attack-sword4.png"
-            offset=0.5~0.4
-        [/frame]
-        [frame]
-            begin=125
-            end=200
-            image="units/human-loyalists/marshal-attack-sword5.png"
-            offset=0.4~0.2
-        [/frame]
-        [frame]
-            begin=150
-            end=225
-            image="units/human-loyalists/marshal.png"
+            image="units/human-loyalists/marshal.png:75"
             offset=0.2~0.0
         [/frame]
     [/attack_anim]
Index: data/core/units/humans/Loyalist_Royal_Guard.cfg
===================================================================
--- data/core/units/humans/Loyalist_Royal_Guard.cfg	(revision 56322)
+++ data/core/units/humans/Loyalist_Royal_Guard.cfg	(working copy)
@@ -48,30 +48,23 @@
         [filter_attack]
             name=sword
         [/filter_attack]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-250
-            image="units/human-loyalists/royalguard.png"
+            image="units/human-loyalists/royalguard.png:50"
             offset=0.0~0.1
         [/frame]
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-loyalists/royalguard-defend-1.png"
+            image="units/human-loyalists/royalguard-defend-1.png:50"
             offset=0.1~0.15
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-loyalists/royalguard-attack-sword1.png"
+            image="units/human-loyalists/royalguard-attack-sword1.png:100"
             offset=0.15~0.35
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=-25
-                image="units/human-loyalists/royalguard-attack-sword2.png"
+                image="units/human-loyalists/royalguard-attack-sword2.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
                 offset=0.35~0.45
             [/frame]
@@ -79,41 +72,17 @@
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=-25
-                image="units/human-loyalists/royalguard-attack-sword2.png"
+                image="units/human-loyalists/royalguard-attack-sword2.png:75"
                 sound={SOUND_LIST:MISS}
                 offset=0.35~0.45
             [/frame]
         [/else]
         [frame]
-            begin=-25
-            end=75
-            image="units/human-loyalists/royalguard-attack-sword3.png"
-            offset=0.45~0.5
+            image="units/human-loyalists/royalguard-attack-sword[3,4,4,5].png:[100,20,30,75]"
+            offset=0.45~0.5,0.5,0.5~0.4,0.4~0.2
         [/frame]
         [frame]
-            begin=75
-            end=95
-            image="units/human-loyalists/royalguard-attack-sword4.png"
-            offset=0.5
-        [/frame]
-        [frame]
-            begin=95
-            end=125
-            image="units/human-loyalists/royalguard-attack-sword4.png"
-            offset=0.5~0.4
-        [/frame]
-        [frame]
-            begin=125
-            end=200
-            image="units/human-loyalists/royalguard-attack-sword5.png"
-            offset=0.4~0.2
-        [/frame]
-        [frame]
-            begin=150
-            end=225
-            image="units/human-loyalists/royalguard.png"
+            image="units/human-loyalists/royalguard.png:75"
             offset=0.2~0.0
         [/frame]
     [/attack_anim]
Index: data/core/units/humans/Peasant.cfg
===================================================================
--- data/core/units/humans/Peasant.cfg	(revision 56322)
+++ data/core/units/humans/Peasant.cfg	(working copy)
@@ -52,89 +52,37 @@
     [/attack]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
+        start_time=0
         [frame]
-            begin=0
-            end=100
-            image="units/human-peasants/peasant-idle-1.png"
+            image="units/human-peasants/peasant-idle-[1~7,4,2,1].png:[100*4,200*3,100*3]"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/human-peasants/peasant-idle-2.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/human-peasants/peasant-idle-3.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=400
-            image="units/human-peasants/peasant-idle-4.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=600
-            image="units/human-peasants/peasant-idle-5.png"
-        [/frame]
-        [frame]
-            begin=600
-            end=800
-            image="units/human-peasants/peasant-idle-6.png"
-        [/frame]
-        [frame]
-            begin=800
-            end=1000
-            image="units/human-peasants/peasant-idle-7.png"
-        [/frame]
-        [frame]
-            begin=1000
-            end=1100
-            image="units/human-peasants/peasant-idle-4.png"
-        [/frame]
-        [frame]
-            begin=1100
-            end=1200
-            image="units/human-peasants/peasant-idle-2.png"
-        [/frame]
-        [frame]
-            begin=1200
-            end=1300
-            image="units/human-peasants/peasant-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=pitchfork
             range=ranged
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/pitchfork-n.png"
             image_diagonal="projectiles/pitchfork-ne.png"
         [/missile_frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/human-peasants/peasant-attack2.png"
+            image="units/human-peasants/peasant-attack2.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/human-peasants/peasant-ranged.png"
+                image="units/human-peasants/peasant-ranged.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/human-peasants/peasant-ranged.png"
+                image="units/human-peasants/peasant-ranged.png:150"
             [/frame]
         [/else]
     [/attack_anim]
@@ -143,38 +91,29 @@
             name=pitchfork
             range=melee
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/human-peasants/peasant.png"
+            image="units/human-peasants/peasant.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-200
-                end=50
-                image="units/human-peasants/peasant-attack.png"
+                image="units/human-peasants/peasant-attack.png:250"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-200
-                end=50
-                image="units/human-peasants/peasant-attack.png"
+                image="units/human-peasants/peasant-attack.png:250"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/human-peasants/peasant-attack2.png"
+            image="units/human-peasants/peasant-attack2.png:100"
         [/frame]
         [frame]
-            begin=150
-            end=200
-            image="units/human-peasants/peasant.png"
+            image="units/human-peasants/peasant.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/goblins/Direwolf_Rider.cfg
===================================================================
--- data/core/units/goblins/Direwolf_Rider.cfg	(revision 56322)
+++ data/core/units/goblins/Direwolf_Rider.cfg	(working copy)
@@ -65,82 +65,44 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/goblins/direwolver-idle-1.png"
+            image="units/goblins/direwolver-idle-[1~4,3~1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/direwolver-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/direwolver-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/direwolver-idle-4.png"
-        [/frame]
-        [frame]
-            duration=1000
-            image="units/goblins/direwolver-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/direwolver-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/direwolver-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=claws
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/goblins/direwolver.png"
+            image="units/goblins/direwolver.png:50"
             sound={SOUND_LIST:WOLF_GROWL}
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/goblins/direwolver-moving.png"
+            image="units/goblins/direwolver-moving.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/direwolver-attack.png"
+                image="units/goblins/direwolver-attack.png:50"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/direwolver-attack.png"
+                image="units/goblins/direwolver-attack.png:50"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=50
-            image="units/goblins/direwolver-attack.png"
+            image="units/goblins/direwolver-attack.png:100"
         [/frame]
         {SOUND:POISON}
         [frame]
-            begin=50
-            end=100
-            image="units/goblins/direwolver-moving.png"
+            image="units/goblins/direwolver-moving.png:50"
         [/frame]
         [frame]
-            begin=100
-            end=200
-            image="units/goblins/direwolver.png"
+            image="units/goblins/direwolver.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -148,43 +110,32 @@
             name=fangs
         [/filter_attack]
         offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+        start_time=-350
         [frame]
-            begin=-350
-            end=-250
-            image="units/goblins/direwolver.png"
+            image="units/goblins/direwolver.png:100"
             sound={SOUND_LIST:WOLF_GROWL}
         [/frame]
         [frame]
-            begin=-250
-            end=-100
-            image="units/goblins/direwolver-attack.png"
+            image="units/goblins/direwolver-attack.png:150"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/direwolver-attack.png"
+                image="units/goblins/direwolver-attack.png:50"
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/direwolver-attack.png"
+                image="units/goblins/direwolver-attack.png:50"
                 sound=bite.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=200
-            image="units/goblins/direwolver-moving.png"
+            image="units/goblins/direwolver-moving.png:250"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/goblins/direwolver.png"
+            image="units/goblins/direwolver.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/goblins/Knight.cfg
===================================================================
--- data/core/units/goblins/Knight.cfg	(revision 56322)
+++ data/core/units/goblins/Knight.cfg	(working copy)
@@ -32,10 +32,9 @@
         image="portraits/goblins/transparent/direwolver.png"
     [/portrait]
     [movement_anim]
+        start_time=0
         [frame]
-            begin=0
-            end=150
-            image="units/goblins/knight-moving.png"
+            image="units/goblins/knight-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/goblins/knight-defend-2.png" "units/goblins/knight-defend-1.png" {SOUND_LIST:WOLF_HIT} }
@@ -56,43 +55,32 @@
             name=fangs
         [/filter_attack]
         offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+        start_time=-350
         [frame]
-            begin=-350
-            end=-250
-            image="units/goblins/knight.png"
+            image="units/goblins/knight.png:100"
             sound={SOUND_LIST:WOLF_GROWL}
         [/frame]
         [frame]
-            begin=-250
-            end=-100
-            image="units/goblins/knight-attack.png"
+            image="units/goblins/knight-attack.png:150"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/knight-attack.png"
+                image="units/goblins/knight-attack.png:50"
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/knight-attack.png"
+                image="units/goblins/knight-attack.png:50"
                 sound=bite.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=200
-            image="units/goblins/knight-moving.png"
+            image="units/goblins/knight-moving.png:250"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/goblins/knight.png"
+            image="units/goblins/knight.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/goblins/Spearman.cfg
===================================================================
--- data/core/units/goblins/Spearman.cfg	(revision 56322)
+++ data/core/units/goblins/Spearman.cfg	(working copy)
@@ -61,53 +61,8 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=150
-            image="units/goblins/spearman-idle-1.png"
+            image="units/goblins/spearman-idle-[1~12].png:[150*3,300,150*8]"
         [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-3.png"
-        [/frame]
-        [frame]
-            duration=300
-            image="units/goblins/spearman-idle-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-8.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-9.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-10.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-11.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/goblins/spearman-idle-12.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
@@ -115,33 +70,28 @@
             range=ranged
         [/filter_attack]
         direction=se,sw
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/goblins/spearman.png"
+            image="units/goblins/spearman.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/goblins/spearman-attack-se1.png"
+                image="units/goblins/spearman-attack-se1.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/goblins/spearman-attack-se1.png"
+                image="units/goblins/spearman-attack-se1.png:150"
             [/frame]
         [/else]
     [/attack_anim]
@@ -151,33 +101,28 @@
             range=ranged
         [/filter_attack]
         direction=s
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/goblins/spearman.png"
+            image="units/goblins/spearman.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/goblins/spearman-attack-s1.png"
+                image="units/goblins/spearman-attack-s1.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/goblins/spearman-attack-s1.png"
+                image="units/goblins/spearman-attack-s1.png:150"
             [/frame]
         [/else]
     [/attack_anim]
@@ -187,33 +132,28 @@
             range=ranged
         [/filter_attack]
         direction=ne,nw
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/goblins/spearman.png"
+            image="units/goblins/spearman.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/goblins/spearman-attack-ne1.png"
+                image="units/goblins/spearman-attack-ne1.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/goblins/spearman-attack-ne1.png"
+                image="units/goblins/spearman-attack-ne1.png:150"
             [/frame]
         [/else]
     [/attack_anim]
@@ -223,33 +163,28 @@
             range=ranged
         [/filter_attack]
         direction=n
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/goblins/spearman.png"
+            image="units/goblins/spearman.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/goblins/spearman-attack-n1.png"
+                image="units/goblins/spearman-attack-n1.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/goblins/spearman-attack-n1.png"
+                image="units/goblins/spearman-attack-n1.png:150"
             [/frame]
         [/else]
     [/attack_anim]
@@ -259,33 +194,26 @@
             range=melee
         [/filter_attack]
         direction=se,sw
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image=units/goblins/spearman-attack-se1.png
+            image=units/goblins/spearman-attack-se1.png:100
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/spearman-attack-se2.png
+                image=units/goblins/spearman-attack-se2.png:200
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/spearman-attack-se2.png
+                image=units/goblins/spearman-attack-se2.png:200
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image=units/goblins/spearman-attack-se1.png
+            image=units/goblins/spearman-attack-se1.png:100
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -294,33 +222,26 @@
             range=melee
         [/filter_attack]
         direction=ne,nw
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image=units/goblins/spearman-attack-ne1.png
+            image=units/goblins/spearman-attack-ne1.png:100
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/spearman-attack-ne2.png
+                image=units/goblins/spearman-attack-ne2.png:200
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/spearman-attack-ne2.png
+                image=units/goblins/spearman-attack-ne2.png:200
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image=units/goblins/spearman-attack-ne1.png
+            image=units/goblins/spearman-attack-ne1.png:100
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -329,33 +250,26 @@
             range=melee
         [/filter_attack]
         direction=s
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image=units/goblins/spearman-attack-s1.png
+            image=units/goblins/spearman-attack-s1.png:100
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/spearman-attack-s2.png
+                image=units/goblins/spearman-attack-s2.png:200
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/spearman-attack-s2.png
+                image=units/goblins/spearman-attack-s2.png:200
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image=units/goblins/spearman-attack-s1.png
+            image=units/goblins/spearman-attack-s1.png:100
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -364,33 +278,26 @@
             range=melee
         [/filter_attack]
         direction=n
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image=units/goblins/spearman-attack-n1.png
+            image=units/goblins/spearman-attack-n1.png:100
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/spearman-attack-n2.png
+                image=units/goblins/spearman-attack-n2.png:200
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/spearman-attack-n2.png
+                image=units/goblins/spearman-attack-n2.png:200
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image=units/goblins/spearman-attack-n1.png
+            image=units/goblins/spearman-attack-n1.png:100
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/goblins/Impaler.cfg
===================================================================
--- data/core/units/goblins/Impaler.cfg	(revision 56322)
+++ data/core/units/goblins/Impaler.cfg	(working copy)
@@ -60,95 +60,45 @@
     [/attack]
 
     [death]
+        start_time=0
         [frame]
-            begin=0
-            end=80
-            image="units/goblins/impaler-death-1.png"
+            image="units/goblins/impaler-death-[1~9].png:[80,75,70,65,60,55,50,45,150]"
         [/frame]
-        [frame]
-            begin=80
-            end=155
-            image="units/goblins/impaler-death-2.png"
-        [/frame]
-        [frame]
-            begin=155
-            end=225
-            image="units/goblins/impaler-death-3.png"
-        [/frame]
-        [frame]
-            begin=225
-            end=290
-            image="units/goblins/impaler-death-4.png"
-        [/frame]
-        [frame]
-            begin=290
-            end=350
-            image="units/goblins/impaler-death-5.png"
-        [/frame]
-        [frame]
-            begin=350
-            end=405
-            image="units/goblins/impaler-death-6.png"
-        [/frame]
-        [frame]
-            begin=405
-            end=455
-            image="units/goblins/impaler-death-7.png"
-        [/frame]
-        [frame]
-            begin=455
-            end=500
-            image="units/goblins/impaler-death-8.png"
-        [/frame]
-        [frame]
-            begin=500
-            end=650
-            image="units/goblins/impaler-death-9.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             name=spear
             range=ranged
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-150
-            image="units/goblins/impaler-attack-se-1.png"
+            image="units/goblins/impaler-attack-se-1.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [frame]
-            begin=-150
-            end=-100
-            image="units/goblins/impaler-attack-ranged-s.png"
+            image="units/goblins/impaler-attack-ranged-s.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
                 sound=spear.ogg
-                begin=-100
-                end=-50
-                image="units/goblins/impaler-attack-ranged-s.png"
+                image="units/goblins/impaler-attack-ranged-s.png:50"
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/impaler-attack-ranged-s.png"
+                image="units/goblins/impaler-attack-ranged-s.png:50"
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=0
-            image="units/goblins/impaler-death-1.png"
+            image="units/goblins/impaler-death-1.png:50"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -157,43 +107,32 @@
             range=melee
         [/filter_attack]
         direction=ne,nw
+        start_time=-200
         [frame]
-            begin=-200
-            end=-125
-            image=units/goblins/impaler.png
+            image=units/goblins/impaler.png:75
         [/frame]
         [frame]
-            begin=-125
-            end=-75
-            image=units/goblins/impaler-attack-ne.png
+            image=units/goblins/impaler-attack-ne.png:50
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/impaler-attack-ne.png
+                image=units/goblins/impaler-attack-ne.png:150
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/impaler-attack-ne.png
+                image=units/goblins/impaler-attack-ne.png:150
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image=units/goblins/impaler-attack-ne.png
+            image=units/goblins/impaler-attack-ne.png:50
         [/frame]
         [frame]
-            begin=125
-            end=200
-            image=units/goblins/impaler.png
+            image=units/goblins/impaler.png:75
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -202,43 +141,32 @@
             range=melee
         [/filter_attack]
         direction=n
+        start_time=-200
         [frame]
-            begin=-200
-            end=-125
-            image=units/goblins/impaler.png
+            image=units/goblins/impaler.png:75
         [/frame]
         [frame]
-            begin=-125
-            end=-75
-            image=units/goblins/impaler-attack-n.png
+            image=units/goblins/impaler-attack-n.png:50
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/impaler-attack-n.png
+                image=units/goblins/impaler-attack-n.png:150
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/impaler-attack-n.png
+                image=units/goblins/impaler-attack-n.png:150
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image=units/goblins/impaler-attack-n.png
+            image=units/goblins/impaler-attack-n.png:50
         [/frame]
         [frame]
-            begin=125
-            end=200
-            image=units/goblins/impaler.png
+            image=units/goblins/impaler.png:75
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -247,43 +175,32 @@
             range=melee
         [/filter_attack]
         direction=s
+        start_time=-200
         [frame]
-            begin=-200
-            end=-125
-            image=units/goblins/impaler.png
+            image=units/goblins/impaler.png:75
         [/frame]
         [frame]
-            begin=-125
-            end=-75
-            image=units/goblins/impaler-attack-se-1.png
+            image=units/goblins/impaler-attack-se-1.png:50
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/impaler-attack-s.png
+                image=units/goblins/impaler-attack-s.png:150
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/impaler-attack-s.png
+                image=units/goblins/impaler-attack-s.png:150
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image=units/goblins/impaler-attack-se-1.png
+            image=units/goblins/impaler-attack-se-1.png:50
         [/frame]
         [frame]
-            begin=125
-            end=200
-            image=units/goblins/impaler.png
+            image=units/goblins/impaler.png:75
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -292,43 +209,32 @@
             range=melee
         [/filter_attack]
         direction=se,sw
+        start_time=-200
         [frame]
-            begin=-200
-            end=-125
-            image=units/goblins/impaler.png
+            image=units/goblins/impaler.png:75
         [/frame]
         [frame]
-            begin=-125
-            end=-75
-            image=units/goblins/impaler-attack-se-1.png
+            image=units/goblins/impaler-attack-se-1.png:50
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/impaler-attack-se-2.png
+                image=units/goblins/impaler-attack-se-2.png:150
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/impaler-attack-se-2.png
+                image=units/goblins/impaler-attack-se-2.png:150
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image=units/goblins/impaler-attack-se-1.png
+            image=units/goblins/impaler-attack-se-1.png:50
         [/frame]
         [frame]
-            begin=125
-            end=200
-            image=units/goblins/impaler.png
+            image=units/goblins/impaler.png:75
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/goblins/Wolf_Rider.cfg
===================================================================
--- data/core/units/goblins/Wolf_Rider.cfg	(revision 56322)
+++ data/core/units/goblins/Wolf_Rider.cfg	(working copy)
@@ -8,16 +8,14 @@
     [standing_anim]
         start_time=-50
         [frame]
-            image="units/goblins/wolf-rider.png"
-            duration=50
+            image="units/goblins/wolf-rider.png:50"
         [/frame]
     [/standing_anim]
     [standing_anim]
         start_time=-50
         terrain_type=!,*^B*,!,Chs^*,Chw^*,W*^*,S*^*,*^Vm
         [frame]
-            image="units/goblins/wolf-rider-water.png"
-            duration=50
+            image="units/goblins/wolf-rider-water.png:50"
         [/frame]
     [/standing_anim]
     {MAGENTA_IS_THE_TEAM_COLOR}
@@ -48,10 +46,9 @@
         image="portraits/goblins/transparent/wolf-rider.png"
     [/portrait]
     [movement_anim]
+        start_time=-0
         [frame]
-            begin=0
-            end=150
-            image="units/goblins/wolf-rider-moving.png"
+            image="units/goblins/wolf-rider-moving.png:150"
         [/frame]
     [/movement_anim]
     {DEFENSE_ANIM "units/goblins/wolf-rider-defend-2.png" "units/goblins/wolf-rider-defend-1.png" {SOUND_LIST:WOLF_HIT} }
@@ -71,100 +68,40 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-1.png"
+            image="units/goblins/wolf-rider-idle-[1~5,4,3~5,4~1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/goblins/wolf-rider-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=fangs
         [/filter_attack]
         offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+        start_time=-350
         [frame]
-            begin=-350
-            end=-250
-            image="units/goblins/wolf-rider.png"
+            image="units/goblins/wolf-rider.png:100"
             sound={SOUND_LIST:WOLF_GROWL}
         [/frame]
         [frame]
-            begin=-250
-            end=-100
-            image="units/goblins/wolf-rider-attack.png"
+            image="units/goblins/wolf-rider-attack.png:150"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/wolf-rider-attack.png"
+                image="units/goblins/wolf-rider-attack.png:50"
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/wolf-rider-attack.png"
+                image="units/goblins/wolf-rider-attack.png:50"
                 sound=bite.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=200
-            image="units/goblins/wolf-rider-moving.png"
+            image="units/goblins/wolf-rider-moving.png:250"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/goblins/wolf-rider.png"
+            image="units/goblins/wolf-rider.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/goblins/Rouser.cfg
===================================================================
--- data/core/units/goblins/Rouser.cfg	(revision 56322)
+++ data/core/units/goblins/Rouser.cfg	(working copy)
@@ -54,141 +54,98 @@
             name=spear
         [/filter_attack]
         direction=se,sw
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image=units/goblins/rouser.png
+            image=units/goblins/rouser.png:25
         [/frame]
         [frame]
-            begin=-175
-            end=-125
-            image=units/goblins/rouser-defend.png
+            image=units/goblins/rouser-defend.png:50
         [/frame]
         [frame]
-            begin=-125
-            end=-75
-            image=units/goblins/rouser-attack1.png
+            image=units/goblins/rouser-attack1.png:50
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/rouser-attack-se.png
+                image=units/goblins/rouser-attack-se.png:150
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/rouser-attack-se.png
+                image=units/goblins/rouser-attack-se.png:150
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image=units/goblins/rouser-attack3.png
+            image=units/goblins/rouser-attack[3,4].png:50
         [/frame]
         [frame]
-            begin=125
-            end=175
-            image=units/goblins/rouser-attack4.png
+            image=units/goblins/rouser.png:25
         [/frame]
-        [frame]
-            begin=175
-            end=200
-            image=units/goblins/rouser.png
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=spear
         [/filter_attack]
         direction=ne,nw
+        start_time=-200
         [frame]
-            begin=-200
-            end=-175
-            image=units/goblins/rouser.png
+            image=units/goblins/rouser.png:25
         [/frame]
         [frame]
-            begin=-175
-            end=-125
-            image=units/goblins/rouser-defend.png
+            image=units/goblins/rouser-defend.png:50
         [/frame]
         [frame]
-            begin=-125
-            end=-75
-            image=units/goblins/rouser-attack1.png
+            image=units/goblins/rouser-attack1.png:50
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/rouser-attack-ne.png
+                image=units/goblins/rouser-attack-ne.png:150
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=75
-                image=units/goblins/rouser-attack-ne.png
+                image=units/goblins/rouser-attack-ne.png:150
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=75
-            end=125
-            image=units/goblins/rouser-attack3.png
+            image=units/goblins/rouser-attack[3,4].png:50
         [/frame]
         [frame]
-            begin=125
-            end=175
-            image=units/goblins/rouser-attack4.png
+            image=units/goblins/rouser.png:25
         [/frame]
-        [frame]
-            begin=175
-            end=200
-            image=units/goblins/rouser.png
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=spear
         [/filter_attack]
         direction=s
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image=units/goblins/rouser-attack4.png
+            image=units/goblins/rouser-attack4.png:100
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/rouser-attack-s.png
+                image=units/goblins/rouser-attack-s.png:200
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/rouser-attack-s.png
+                image=units/goblins/rouser-attack-s.png:200
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image=units/goblins/rouser-attack4.png
+            image=units/goblins/rouser-attack4.png:100
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -196,33 +153,26 @@
             name=spear
         [/filter_attack]
         direction=n
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image=units/goblins/rouser-attack4.png
+            image=units/goblins/rouser-attack4.png:100
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/rouser-attack-n.png
+                image=units/goblins/rouser-attack-n.png:200
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image=units/goblins/rouser-attack-n.png
+                image=units/goblins/rouser-attack-n.png:200
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image=units/goblins/rouser-attack4.png
+            image=units/goblins/rouser-attack4.png:100
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/goblins/Pillager.cfg
===================================================================
--- data/core/units/goblins/Pillager.cfg	(revision 56322)
+++ data/core/units/goblins/Pillager.cfg	(working copy)
@@ -75,39 +75,32 @@
         [filter_attack]
             name=net
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/web.png"
             image_diagonal="projectiles/web.png"
         [/missile_frame]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/goblins/pillager-defend-1.png"
+            image="units/goblins/pillager-defend-1.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=-75
-                image="units/goblins/pillager-attack2.png"
+                image="units/goblins/pillager-attack2.png:75"
                 sound=net.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=-75
-                image="units/goblins/pillager-attack2.png"
+                image="units/goblins/pillager-attack2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=-75
-            end=100
-            image="units/goblins/pillager.png"
+            image="units/goblins/pillager.png:175"
         [/frame]
         {SOUND:SLOW}
     [/attack_anim]
@@ -115,33 +108,26 @@
         [filter_attack]
             name=torch
         [/filter_attack]
+        start_time=-200
         [if]
             hits=yes
             [frame]
-                begin=-200
-                end=-100
-                image="units/goblins/pillager-moving.png"
+                image="units/goblins/pillager-moving.png:100"
                 sound=torch.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-200
-                end=-100
-                image="units/goblins/pillager-moving.png"
+                image="units/goblins/pillager-moving.png:100"
                 sound=torch-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=50
-            image="units/goblins/pillager-attack.png"
+            image="units/goblins/pillager-attack.png:150"
         [/frame]
         [frame]
-            begin=50
-            end=150
-            image="units/goblins/pillager-moving.png"
+            image="units/goblins/pillager-moving.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -149,43 +135,32 @@
             name=fangs
         [/filter_attack]
         offset=0.0~-0.1:100,-0.1~0.0:50,0.0~0.3:50,0.3~0.5:100,0.5~0.6:50,0.6~0.4:100,0.4~0.2:50,0.2~0.0:100
+        start_time=-350
         [frame]
-            begin=-350
-            end=-250
-            image="units/goblins/pillager.png"
+            image="units/goblins/pillager.png:100"
             sound={SOUND_LIST:WOLF_GROWL}
         [/frame]
         [frame]
-            begin=-250
-            end=-100
-            image="units/goblins/pillager-attack.png"
+            image="units/goblins/pillager-attack.png:150"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/pillager-attack.png"
+                image="units/goblins/pillager-attack.png:50"
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=-50
-                image="units/goblins/pillager-attack.png"
+                image="units/goblins/pillager-attack.png:50"
                 sound=bite.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-50
-            end=200
-            image="units/goblins/pillager-moving.png"
+            image="units/goblins/pillager-moving.png:250"
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/goblins/pillager.png"
+            image="units/goblins/pillager.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Fighter.cfg
===================================================================
--- data/core/units/merfolk/Fighter.cfg	(revision 56322)
+++ data/core/units/merfolk/Fighter.cfg	(working copy)
@@ -47,49 +47,25 @@
         direction=se,sw
         start_time=-225
         [frame]
-            duration=75
-            image="units/merfolk/fighter-attack-1.png"
+            image="units/merfolk/fighter-attack-[1,2].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/merfolk/fighter-attack-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/merfolk/fighter-attack-3.png"
+                image="units/merfolk/fighter-attack-3.png:75"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/merfolk/fighter-attack-3.png"
+                image="units/merfolk/fighter-attack-3.png:75"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=75
-            image="units/merfolk/fighter-attack-4.png"
+            image="units/merfolk/fighter-attack-[4~6,2,1].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/merfolk/fighter-attack-5.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/merfolk/fighter-attack-6.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/merfolk/fighter-attack-2.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/merfolk/fighter-attack-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -98,28 +74,24 @@
         direction=n,ne,nw,s
         start_time=-200
         [frame]
-            duration=50
-            image="units/merfolk/fighter.png"
+            image="units/merfolk/fighter.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=250
-                image="units/merfolk/fighter.png"
+                image="units/merfolk/fighter.png:250"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=250
-                image="units/merfolk/fighter.png"
+                image="units/merfolk/fighter.png:250"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/merfolk/fighter.png"
+            image="units/merfolk/fighter.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Netcaster.cfg
===================================================================
--- data/core/units/merfolk/Netcaster.cfg	(revision 56322)
+++ data/core/units/merfolk/Netcaster.cfg	(working copy)
@@ -56,34 +56,29 @@
         [filter_attack]
             name=net
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/web.png"
             image_diagonal="projectiles/web.png"
         [/missile_frame]
+        start_time=-150
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=-75
-                image="units/merfolk/netcaster.png"
+                image="units/merfolk/netcaster.png:75"
                 sound=net.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=-75
-                image="units/merfolk/netcaster.png"
+                image="units/merfolk/netcaster.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=-75
-            end=100
-            image="units/merfolk/netcaster.png"
+            image="units/merfolk/netcaster.png:175"
         [/frame]
         {SOUND:SLOW}
     [/attack_anim]
@@ -92,25 +87,19 @@
             name=club
         [/filter_attack]
         [frame]
-            begin=-200
-            end=-100
-            image="units/merfolk/netcaster.png"
+            image="units/merfolk/netcaster.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=150
-                image="units/merfolk/netcaster.png"
+                image="units/merfolk/netcaster.png:250"
                 sound=club.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=150
-                image="units/merfolk/netcaster.png"
+                image="units/merfolk/netcaster.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
Index: data/core/units/merfolk/Diviner.cfg
===================================================================
--- data/core/units/merfolk/Diviner.cfg	(revision 56322)
+++ data/core/units/merfolk/Diviner.cfg	(working copy)
@@ -43,16 +43,14 @@
     [healing_anim]
         start_time=-525
         [frame]
-            duration=150
-            image="units/merfolk/diviner.png" ### magic-1
+            image="units/merfolk/diviner.png:150" ### magic-1
         [/frame]
         [frame]
             image="units/merfolk/diviner.png" ### magic-3
             halo=halo/holy/halo[6,1~6].png:75
         [/frame]
         [frame]
-            duration=150
-            image="units/merfolk/diviner.png" ### magic-2
+            image="units/merfolk/diviner.png:150" ### magic-2
         [/frame]
     [/healing_anim]
     [attack]
@@ -81,49 +79,36 @@
         [/filter_attack]
         {MISSILE_FRAME_LIGHT_BEAM}
 
+        start_time=-250
         [if]
             hits=yes
             [frame]
-                begin=-250
-                end=-175
-                image="units/merfolk/diviner.png"
+                image="units/merfolk/diviner.png:75"
                 sound={SOUND_LIST:HOLY}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-250
-                end=-175
-                image="units/merfolk/diviner.png"
+                image="units/merfolk/diviner.png:75"
                 sound={SOUND_LIST:HOLY_MISS}
             [/frame]
         [/else]
         [frame]
-            begin=-175
-            end=0
-            image="units/merfolk/diviner.png"
+            image="units/merfolk/diviner.png:175"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/merfolk/diviner.png"
+            image="units/merfolk/diviner.png:50"
         [/frame]
         {SOUND:HIT_AND_MISS staff.wav {SOUND_LIST:MISS} -100}
         [frame]
-            begin=-150
-            end=100
-            image="units/merfolk/diviner.png"
+            image="units/merfolk/diviner.png:325"
         [/frame]
-        [frame]
-            begin=100
-            end=175
-            image="units/merfolk/diviner.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Hoplite.cfg
===================================================================
--- data/core/units/merfolk/Hoplite.cfg	(revision 56322)
+++ data/core/units/merfolk/Hoplite.cfg	(working copy)
@@ -54,33 +54,26 @@
         [filter_attack]
             name=spear
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/merfolk/hoplite.png"
+            image="units/merfolk/hoplite.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=50
-                image="units/merfolk/hoplite.png"
+                image="units/merfolk/hoplite.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=50
-                image="units/merfolk/hoplite.png"
+                image="units/merfolk/hoplite.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/merfolk/hoplite.png"
+            image="units/merfolk/hoplite.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Hunter.cfg
===================================================================
--- data/core/units/merfolk/Hunter.cfg	(revision 56322)
+++ data/core/units/merfolk/Hunter.cfg	(working copy)
@@ -54,21 +54,8 @@
             range=ranged
         [/filter_attack]
         [frame]
-            duration=100
-            image="units/merfolk/hunter-javelin-1.png"
+            image="units/merfolk/hunter-javelin-[1~4].png:[100,300,140,100]"
         [/frame]
-        [frame]
-            duration=300
-            image="units/merfolk/hunter-javelin-2.png"
-        [/frame]
-        [frame]
-            duration=140
-            image="units/merfolk/hunter-javelin-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/hunter-javelin-4.png"
-        [/frame]
     [/draw_weapon_anim]
     [sheath_weapon_anim]
         [filter_attack]
@@ -76,25 +63,8 @@
             range=ranged
         [/filter_attack]
         [frame]
-            duration=100
-            image="units/merfolk/hunter-javelin-4.png"
+            image="units/merfolk/hunter-javelin-[4~7,1].png:[100,300,140,100*2]"
         [/frame]
-        [frame]
-            duration=300
-            image="units/merfolk/hunter-javelin-5.png"
-        [/frame]
-        [frame]
-            duration=140
-            image="units/merfolk/hunter-javelin-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/hunter-javelin-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/hunter-javelin-1.png"
-        [/frame]
     [/sheath_weapon_anim]
     [attack_anim]
         [filter_attack]
@@ -102,97 +72,67 @@
             range=ranged
         [/filter_attack]
         start_time=-760
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
         [frame]
-            duration=1
-            image="units/merfolk/hunter-javelin-base.png"
+            image="units/merfolk/hunter-javelin-base.png:1"
         [/frame]
         [frame]
-            duration=100
-            image="units/merfolk/hunter-throw-1.png"
+            image="units/merfolk/hunter-throw-[1~4].png:[100*2,120,220]"
         [/frame]
         [frame]
-            duration=100
-            image="units/merfolk/hunter-throw-2.png"
-        [/frame]
-        [frame]
-            duration=120
-            image="units/merfolk/hunter-throw-3.png"
-        [/frame]
-        [frame]
-            duration=220
-            image="units/merfolk/hunter-throw-4.png"
-        [/frame]
-        [frame]
-            duration=120
-            image="units/merfolk/hunter-throw-5.png"
+            image="units/merfolk/hunter-throw-5.png:120"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/merfolk/hunter-throw-6.png"
+                image="units/merfolk/hunter-throw-6.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/merfolk/hunter-throw-6.png"
+                image="units/merfolk/hunter-throw-6.png:100"
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/merfolk/hunter-throw-7.png"
+            image="units/merfolk/hunter-throw-[7,8].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/merfolk/hunter-throw-8.png"
+            image="units/merfolk/hunter-javelin-base.png:1"
         [/frame]
-        [frame]
-            duration=1
-            image="units/merfolk/hunter-javelin-base.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=spear
             range=melee
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/merfolk/hunter.png"
+            image="units/merfolk/hunter.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/merfolk/hunter.png"
+                image="units/merfolk/hunter.png:250"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/merfolk/hunter.png"
+                image="units/merfolk/hunter.png:250"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/merfolk/hunter.png"
+            image="units/merfolk/hunter.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Spearman.cfg
===================================================================
--- data/core/units/merfolk/Spearman.cfg	(revision 56322)
+++ data/core/units/merfolk/Spearman.cfg	(working copy)
@@ -51,33 +51,28 @@
             name=spear
             range=ranged
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/merfolk/spearman.png"
+            image="units/merfolk/spearman.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/merfolk/spearman.png"
+                image="units/merfolk/spearman.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/merfolk/spearman.png"
+                image="units/merfolk/spearman.png:150"
             [/frame]
         [/else]
     [/attack_anim]
@@ -86,33 +81,26 @@
             name=spear
             range=melee
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/merfolk/spearman.png"
+            image="units/merfolk/spearman.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/merfolk/spearman.png"
+                image="units/merfolk/spearman.png:250"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/merfolk/spearman.png"
+                image="units/merfolk/spearman.png:250"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/merfolk/spearman.png"
+            image="units/merfolk/spearman.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Initiate.cfg
===================================================================
--- data/core/units/merfolk/Initiate.cfg	(revision 56322)
+++ data/core/units/merfolk/Initiate.cfg	(working copy)
@@ -61,9 +61,9 @@
         [/filter_attack]
         start_time=-420
 
+        missile_start_time=-165
         [missile_frame]
-            begin=-165
-            end=0
+            duration=165
             image="projectiles/water-spray.png"
             image_diagonal="projectiles/water-spray.png"
         [/missile_frame]
@@ -71,21 +71,14 @@
         {MERMAID_STAFF_FLARE 16 -12}
 
         [frame]
-            duration=70
-            image="units/merfolk/initiate-magic-1.png"
+            image="units/merfolk/initiate-magic-[1,2].png:[70,230]"
         [/frame]
         [frame]
-            duration=230
-            image="units/merfolk/initiate-magic-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/merfolk/initiate-magic-2.png"
+            image="units/merfolk/initiate-magic-2.png:50"
             sound=water-blast.wav
         [/frame]
         [frame]
-            duration=80
-            image="units/merfolk/initiate-magic-1.png"
+            image="units/merfolk/initiate-magic-1.png:80"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -94,36 +87,30 @@
         [/filter_attack]
         start_time=-250
         [frame]
-            duration=50
-            image="units/merfolk/initiate.png"
+            image="units/merfolk/initiate.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/merfolk/initiate-staff-attack-1.png"
+            image="units/merfolk/initiate-staff-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=200
-                image="units/merfolk/initiate-staff-attack-2.png"
+                image="units/merfolk/initiate-staff-attack-2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=200
-                image="units/merfolk/initiate-staff-attack-2.png"
+                image="units/merfolk/initiate-staff-attack-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/merfolk/initiate-magic-1.png"
+            image="units/merfolk/initiate-magic-1.png:50"
         [/frame]
         [frame]
-            duration=50
-            image="units/merfolk/initiate.png"
+            image="units/merfolk/initiate.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Enchantress.cfg
===================================================================
--- data/core/units/merfolk/Enchantress.cfg	(revision 56322)
+++ data/core/units/merfolk/Enchantress.cfg	(working copy)
@@ -56,39 +56,26 @@
         [filter_attack]
             name=water spray
         [/filter_attack]
+        missile_start_time=-165
         [missile_frame]
-            begin=-165
-            end=0
+            duration=165
             image="projectiles/water-spray.png"
             image_diagonal="projectiles/water-spray.png"
         [/missile_frame]
         start_time=-420
 
-        [missile_frame]
-            begin=-165
-            end=0
-            image="projectiles/water-spray.png"
-            image_diagonal="projectiles/water-spray.png"
-        [/missile_frame]
         {MERMAID_WATER_BLAST_HALO}
         {MERMAID_STAFF_FLARE 16 -12}
 
         [frame]
-            duration=70
-            image="units/merfolk/enchantress.png" ### magic-1
+            image="units/merfolk/enchantress.png:300" ### magic-1
         [/frame]
         [frame]
-            duration=230
-            image="units/merfolk/enchantress.png" ### magic-2
-        [/frame]
-        [frame]
-            duration=50
-            image="units/merfolk/enchantress.png" ### magic-2
+            image="units/merfolk/enchantress.png:50" ### magic-2
             sound=water-blast.wav
         [/frame]
         [frame]
-            duration=80
-            image="units/merfolk/enchantress.png" ### magic-1
+            image="units/merfolk/enchantress.png:80" ### magic-1
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -97,36 +84,30 @@
         [/filter_attack]
         start_time=-250
         [frame]
-            duration=50
-            image="units/merfolk/enchantress.png"
+            image="units/merfolk/enchantress.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/merfolk/enchantress.png" ### attack-1
+            image="units/merfolk/enchantress.png:100" ### attack-1
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=200
-                image="units/merfolk/enchantress.png" ### attack-2
+                image="units/merfolk/enchantress.png:200" ### attack-2
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=200
-                image="units/merfolk/enchantress.png" ### attack-2
+                image="units/merfolk/enchantress.png:200" ### attack-2
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/merfolk/enchantress.png" ### magic-1
+            image="units/merfolk/enchantress.png:50" ### magic-1
         [/frame]
         [frame]
-            duration=50
-            image="units/merfolk/enchantress.png"
+            image="units/merfolk/enchantress.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Entangler.cfg
===================================================================
--- data/core/units/merfolk/Entangler.cfg	(revision 56322)
+++ data/core/units/merfolk/Entangler.cfg	(working copy)
@@ -45,34 +45,29 @@
         [filter_attack]
             name=net
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/web.png"
             image_diagonal="projectiles/web.png"
         [/missile_frame]
+        start_time=-150
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=-75
-                image="units/merfolk/entangler.png"
+                image="units/merfolk/entangler.png:75"
                 sound=net.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=-75
-                image="units/merfolk/entangler.png"
+                image="units/merfolk/entangler.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=-75
-            end=100
-            image="units/merfolk/entangler.png"
+            image="units/merfolk/entangler.png:175"
         [/frame]
         {SOUND:SLOW}
     [/attack_anim]
@@ -80,26 +75,21 @@
         [filter_attack]
             name=club
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/merfolk/entangler.png"
+            image="units/merfolk/entangler.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=150
-                image="units/merfolk/entangler.png"
+                image="units/merfolk/entangler.png:250"
                 sound=club.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=150
-                image="units/merfolk/entangler.png"
+                image="units/merfolk/entangler.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
Index: data/core/units/merfolk/Triton.cfg
===================================================================
--- data/core/units/merfolk/Triton.cfg	(revision 56322)
+++ data/core/units/merfolk/Triton.cfg	(working copy)
@@ -53,33 +53,26 @@
             name=trident
             type=blade
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-125
-            image="units/merfolk/triton.png"
+            image="units/merfolk/triton.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-125
-                end=50
-                image="units/merfolk/triton.png"
+                image="units/merfolk/triton.png:175"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-125
-                end=50
-                image="units/merfolk/triton.png"
+                image="units/merfolk/triton.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/merfolk/triton.png"
+            image="units/merfolk/triton.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -87,33 +80,26 @@
             name=trident
             type=pierce
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-125
-            image="units/merfolk/triton.png"
+            image="units/merfolk/triton.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-125
-                end=50
-                image="units/merfolk/triton.png"
+                image="units/merfolk/triton.png:175"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-125
-                end=50
-                image="units/merfolk/triton.png"
+                image="units/merfolk/triton.png:175"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=50
-            end=150
-            image="units/merfolk/triton.png"
+            image="units/merfolk/triton.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Siren.cfg
===================================================================
--- data/core/units/merfolk/Siren.cfg	(revision 56322)
+++ data/core/units/merfolk/Siren.cfg	(working copy)
@@ -66,9 +66,9 @@
         [/filter_attack]
         start_time=-420
 
+        missile_start_time=-165
         [missile_frame]
-            begin=-165
-            end=0
+            duration=165
             image="projectiles/water-spray.png"
             image_diagonal="projectiles/water-spray.png"
         [/missile_frame]
@@ -76,21 +76,14 @@
         {MERMAID_STAFF_FLARE 16 -12}
 
         [frame]
-            duration=70
-            image="units/merfolk/siren.png" ### magic-1
+            image="units/merfolk/siren.png:300" ### magic-1
         [/frame]
         [frame]
-            duration=230
-            image="units/merfolk/siren.png" ### magic-2
-        [/frame]
-        [frame]
-            duration=50
-            image="units/merfolk/siren.png" ### magic-2
+            image="units/merfolk/siren.png:50" ### magic-2
             sound=water-blast.wav
         [/frame]
         [frame]
-            duration=80
-            image="units/merfolk/siren.png" ### magic-1
+            image="units/merfolk/siren.png:80" ### magic-1
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -99,36 +92,30 @@
         [/filter_attack]
         start_time=-250
         [frame]
-            duration=50
-            image="units/merfolk/siren.png"
+            image="units/merfolk/siren.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/merfolk/siren.png" ### attack-1
+            image="units/merfolk/siren.png:100" ### attack-1
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=200
-                image="units/merfolk/siren.png" ### attack-2
+                image="units/merfolk/siren.png:200" ### attack-2
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=200
-                image="units/merfolk/siren.png" ### attack-2
+                image="units/merfolk/siren.png:200" ### attack-2
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/merfolk/siren.png" ### magic-1
+            image="units/merfolk/siren.png:50" ### magic-1
         [/frame]
         [frame]
-            duration=50
-            image="units/merfolk/siren.png"
+            image="units/merfolk/siren.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Priestess.cfg
===================================================================
--- data/core/units/merfolk/Priestess.cfg	(revision 56322)
+++ data/core/units/merfolk/Priestess.cfg	(working copy)
@@ -40,16 +40,14 @@
     [healing_anim]
         start_time=-525
         [frame]
-            duration=150
-            image="units/merfolk/priestess.png" ### magic-1
+            image="units/merfolk/priestess.png:150" ### magic-1
         [/frame]
         [frame]
             image="units/merfolk/priestess.png" ### magic-3
             halo=halo/holy/halo[6,1~6].png:75
         [/frame]
         [frame]
-            duration=150
-            image="units/merfolk/priestess.png" ### magic-2
+            image="units/merfolk/priestess.png:150" ### magic-2
         [/frame]
     [/healing_anim]
     [attack]
@@ -78,49 +76,39 @@
         [/filter_attack]
         {MISSILE_FRAME_LIGHT_BEAM}
 
+        start_time=-250
         [if]
             hits=yes
             [frame]
-                begin=-250
-                end=-175
-                image="units/merfolk/priestess.png"
+                image="units/merfolk/priestess.png:75"
                 sound={SOUND_LIST:HOLY}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-250
-                end=-175
-                image="units/merfolk/priestess.png"
+                image="units/merfolk/priestess.png:75"
                 sound={SOUND_LIST:HOLY_MISS}
             [/frame]
         [/else]
         [frame]
-            begin=-175
-            end=0
-            image="units/merfolk/priestess.png"
+            image="units/merfolk/priestess.png:175"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/merfolk/priestess.png"
+            image="units/merfolk/priestess.png:50"
         [/frame]
         {SOUND:HIT_AND_MISS staff.wav {SOUND_LIST:MISS} -100}
         [frame]
-            begin=-150
-            end=100
-            image="units/merfolk/priestess.png"
+            image="units/merfolk/priestess.png:250"
         [/frame]
         [frame]
-            begin=100
-            end=175
-            image="units/merfolk/priestess.png"
+            image="units/merfolk/priestess.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Javelineer.cfg
===================================================================
--- data/core/units/merfolk/Javelineer.cfg	(revision 56322)
+++ data/core/units/merfolk/Javelineer.cfg	(working copy)
@@ -52,33 +52,28 @@
             name=spear
             range=ranged
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
         [/missile_frame]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/merfolk/javelineer.png"
+            image="units/merfolk/javelineer.png:100"
             sound={SOUND_LIST:THROW}
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=50
-                image="units/merfolk/javelineer.png"
+                image="units/merfolk/javelineer.png:150"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=50
-                image="units/merfolk/javelineer.png"
+                image="units/merfolk/javelineer.png:150"
             [/frame]
         [/else]
     [/attack_anim]
@@ -87,33 +82,26 @@
             name=spear
             range=melee
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/merfolk/javelineer.png"
+            image="units/merfolk/javelineer.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/merfolk/javelineer.png"
+                image="units/merfolk/javelineer.png:200"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/merfolk/javelineer.png"
+                image="units/merfolk/javelineer.png:200"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/merfolk/javelineer.png"
+            image="units/merfolk/javelineer.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/merfolk/Warrior.cfg
===================================================================
--- data/core/units/merfolk/Warrior.cfg	(revision 56322)
+++ data/core/units/merfolk/Warrior.cfg	(working copy)
@@ -45,86 +45,51 @@
         offset=0~0.3,0.3~0
         direction=se,sw
         [frame]
-            duration=100
-            image="units/merfolk/warrior-attack-1.png"
+            image="units/merfolk/warrior-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/merfolk/warrior-attack-2.png"
+                image="units/merfolk/warrior-attack-2.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/merfolk/warrior-attack-2.png"
+                image="units/merfolk/warrior-attack-2.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/merfolk/warrior-attack-3.png"
+            image="units/merfolk/warrior-attack-[3~9].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/warrior-attack-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/warrior-attack-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/warrior-attack-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/warrior-attack-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/warrior-attack-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/merfolk/warrior-attack-9.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=trident
         [/filter_attack]
         direction=n,ne,nw,s
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/merfolk/warrior.png"
+            image="units/merfolk/warrior.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/merfolk/warrior.png"
+                image="units/merfolk/warrior.png:250"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/merfolk/warrior.png"
+                image="units/merfolk/warrior.png:250"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=150
-            image="units/merfolk/warrior.png"
+            image="units/merfolk/warrior.png:50"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/undead/Necro_Lich.cfg
===================================================================
--- data/core/units/undead/Necro_Lich.cfg	(revision 56322)
+++ data/core/units/undead/Necro_Lich.cfg	(working copy)
@@ -84,201 +84,69 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
+            image="units/undead-necromancers/lich.png:110"
         [/frame]
         [frame]
             duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-1.png
+            image="units/undead-necromancers/[lich,lich-idle-1,lich,lich-idle-2,lich,lich-idle-2,lich,lich-idle-3,lich,lich-idle-3,lich,lich-idle-3,lich,lich-idle-2,lich,lich-idle-1,lich,lich-idle-2,lich,lich-idle-2,lich].png"
+            halo=halo/undead/idle-flash-[1~21].png
         [/frame]
         [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-1.png"
-            halo=halo/undead/idle-flash-2.png
+            image="units/undead-necromancers/lich.png:110"
         [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-3.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-2.png"
-            halo=halo/undead/idle-flash-4.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-5.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-2.png"
-            halo=halo/undead/idle-flash-6.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-7.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-3.png"
-            halo=halo/undead/idle-flash-8.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-9.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-3.png"
-            halo=halo/undead/idle-flash-10.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-11.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-3.png"
-            halo=halo/undead/idle-flash-12.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-13.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-2.png"
-            halo=halo/undead/idle-flash-14.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-15.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-1.png"
-            halo=halo/undead/idle-flash-16.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-17.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-2.png"
-            halo=halo/undead/idle-flash-18.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-19.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich-idle-2.png"
-            halo=halo/undead/idle-flash-20.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-            halo=halo/undead/idle-flash-21.png
-        [/frame]
-        [frame]
-            duration=110
-            image="units/undead-necromancers/lich.png"
-        [/frame]
     [/idle_anim]
 
     [recruiting_anim]
         [filter_second]
             race=undead
         [/filter_second]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/undead-necromancers/lich-magic-1.png"
+            image="units/undead-necromancers/lich-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/undead-necromancers/lich-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/undead-necromancers/lich-magic-3.png"
+            image="units/undead-necromancers/lich-magic-3.png:75"
             halo=halo/undead/black-magic-1.png
         [/frame]
         [frame]
-            begin=-75
-            end=0
-            image="units/undead-necromancers/lich-magic-3.png"
+            image="units/undead-necromancers/lich-magic-3.png:75"
             sound=magic-dark-big.ogg
             halo=halo/undead/black-magic-2.png
         [/frame]
         [frame]
-            begin=0
-            end=200
             image="units/undead-necromancers/lich-magic-3.png"
             halo=halo/undead/black-magic-[3~5].png:[75,75,50]
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/undead-necromancers/lich-magic-2.png"
+            image="units/undead-necromancers/lich-magic-[2,1].png:50"
         [/frame]
         [frame]
-            begin=250
-            end=300
-            image="units/undead-necromancers/lich-magic-1.png"
+            image="units/undead-necromancers/lich.png:1"
         [/frame]
-        [frame]
-            duration=1
-            image="units/undead-necromancers/lich.png"
-        [/frame]
     [/recruiting_anim]
     [attack_anim]
         [filter_attack]
             range=ranged
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/darkmissile-n.png"
             image_diagonal="projectiles/darkmissile-ne.png"
         [/missile_frame]
 
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/undead-necromancers/lich-magic-1.png"
+            image="units/undead-necromancers/lich-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/undead-necromancers/lich-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/undead-necromancers/lich-magic-3.png"
+            image="units/undead-necromancers/lich-magic-3.png:75"
             halo=halo/undead/black-magic-1.png
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=0
-                image="units/undead-necromancers/lich-magic-3.png"
+                image="units/undead-necromancers/lich-magic-3.png:75"
                 sound=magic-dark-big.ogg
                 halo=halo/undead/black-magic-2.png
             [/frame]
@@ -286,71 +154,49 @@
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=0
-                image="units/undead-necromancers/lich-magic-3.png"
+                image="units/undead-necromancers/lich-magic-3.png:75"
                 sound=magic-dark-big-miss.ogg
                 halo=halo/undead/black-magic-2.png
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=200
             image="units/undead-necromancers/lich-magic-3.png"
             halo=halo/undead/black-magic-[3~5].png:[75,75,50]
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/undead-necromancers/lich-magic-2.png"
+            image="units/undead-necromancers/lich-magic-[2,1].png:50"
         [/frame]
-        [frame]
-            begin=250
-            end=300
-            image="units/undead-necromancers/lich-magic-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=touch
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/undead-necromancers/lich.png"
+            image="units/undead-necromancers/lich.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/undead-necromancers/lich-melee-1.png"
+            image="units/undead-necromancers/lich-melee-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/undead-necromancers/lich-melee-2.png"
+                image="units/undead-necromancers/lich-melee-2.png:200"
                 sound=wail-sml.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/undead-necromancers/lich-melee-2.png"
+                image="units/undead-necromancers/lich-melee-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/undead-necromancers/lich-magic-1.png"
+            image="units/undead-necromancers/lich-magic-1.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=250
-            image="units/undead-necromancers/lich.png"
+            image="units/undead-necromancers/lich.png:75"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/undead/Necro_Ancient_Lich.cfg
===================================================================
--- data/core/units/undead/Necro_Ancient_Lich.cfg	(revision 56322)
+++ data/core/units/undead/Necro_Ancient_Lich.cfg	(working copy)
@@ -83,107 +83,77 @@
         [filter_second]
             race=undead
         [/filter_second]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-200
-            image="units/undead-necromancers/ancient-lich-magic-1.png"
+            image="units/undead-necromancers/ancient-lich-magic-1.png:100"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/undead-necromancers/ancient-lich-magic-2.png"
+            image="units/undead-necromancers/ancient-lich-magic-2.png:100"
             sound=magic-dark-big.ogg
         [/frame]
         [frame]
-            begin=-100
-            end=0
-            image="units/undead-necromancers/ancient-lich-magic-3.png"
+            image="units/undead-necromancers/ancient-lich-magic-[3,1].png:100"
         [/frame]
         [frame]
-            begin=0
-            end=100
-            image="units/undead-necromancers/ancient-lich-magic-1.png"
+            image="units/undead-necromancers/ancient-lich.png:1"
         [/frame]
-        [frame]
-            duration=1
-            image="units/undead-necromancers/ancient-lich.png"
-        [/frame]
     [/recruiting_anim]
     [attack_anim]
         [filter_attack]
             range=ranged
         [/filter_attack]
+        missile_start_time=-200
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/darkmissile-n.png"
             image_diagonal="projectiles/darkmissile-ne.png"
         [/missile_frame]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-200
-            image="units/undead-necromancers/ancient-lich-magic-1.png"
+            image="units/undead-necromancers/ancient-lich-magic-1.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-200
-                end=-100
-                image="units/undead-necromancers/ancient-lich-magic-2.png"
+                image="units/undead-necromancers/ancient-lich-magic-2.png:100"
                 sound=magic-dark-big-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-200
-                end=-100
-                image="units/undead-necromancers/ancient-lich-magic-2.png"
+                image="units/undead-necromancers/ancient-lich-magic-2.png:100"
                 sound=magic-dark-big.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=0
-            image="units/undead-necromancers/ancient-lich-magic-3.png"
+            image="units/undead-necromancers/ancient-lich-magic-[3,1].png:100"
         [/frame]
-        [frame]
-            begin=0
-            end=100
-            image="units/undead-necromancers/ancient-lich-magic-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=touch
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-150
-            image="units/undead-necromancers/ancient-lich.png"
+            image="units/undead-necromancers/ancient-lich.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=100
-                image="units/undead-necromancers/ancient-lich-melee.png"
+                image="units/undead-necromancers/ancient-lich-melee.png:250"
                 sound=wail-sml.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=100
-                image="units/undead-necromancers/ancient-lich-melee.png"
+                image="units/undead-necromancers/ancient-lich-melee.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/undead-necromancers/ancient-lich.png"
+            image="units/undead-necromancers/ancient-lich.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/undead/Corpse_Walking.cfg
===================================================================
--- data/core/units/undead/Corpse_Walking.cfg	(revision 56322)
+++ data/core/units/undead/Corpse_Walking.cfg	(working copy)
@@ -42,43 +42,17 @@
     [death]
         start_time=0
         [frame]
-            duration=150
-            image="units/undead/soulless-die-4.png"
+            image="units/undead/soulless-die-[4~10].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-8.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-9.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-10.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             name=touch
         [/filter_attack]
         direction=s
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_IMAGE}-attack-s.png"
+            image="units/undead/{BASE_IMAGE}-attack-s.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -87,10 +61,9 @@
             name=touch
         [/filter_attack]
         direction=n
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_IMAGE}-attack-n.png"
+            image="units/undead/{BASE_IMAGE}-attack-n.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -99,10 +72,9 @@
             name=touch
         [/filter_attack]
         direction=se,sw,ne,nw
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_IMAGE}-attack.png"
+            image="units/undead/{BASE_IMAGE}-attack.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -115,55 +87,17 @@
     [death]
         start_time=0
         [frame]
-            duration=150
-            image="units/undead/{NBASE_NAME}-die-1.png"
+            image="units/undead/{NBASE_NAME}-die-[1~4].png:150,units/undead/soulless-die-[5~10].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/undead/{NBASE_NAME}-die-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/{NBASE_NAME}-die-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/{NBASE_NAME}-die-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-8.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-9.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-10.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             name=touch
         [/filter_attack]
         direction=s
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{NBASE_NAME}-attack-s.png"
+            image="units/undead/{NBASE_NAME}-attack-s.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -172,10 +106,9 @@
             name=touch
         [/filter_attack]
         direction=n
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{NBASE_NAME}-attack-n.png"
+            image="units/undead/{NBASE_NAME}-attack-n.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -184,10 +117,9 @@
             name=touch
         [/filter_attack]
         direction=se,sw,ne,nw
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{NBASE_NAME}-attack.png"
+            image="units/undead/{NBASE_NAME}-attack.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -320,31 +252,23 @@
             [/if]
             start_time=-126
             [frame]
-                duration=1
-                image="units/undead/zombie-bat-se-3.png"
+                image="units/undead/zombie-bat-se-[3,4].png:[1,100]"
             [/frame]
-            [frame]
-                duration=100
-                image="units/undead/zombie-bat-se-4.png"
-            [/frame]
             [if]
                 hits=hit
                 [frame]
-                    duration=150
-                    image="units/undead/zombie-bat-se-4.png"
+                    image="units/undead/zombie-bat-se-4.png:150"
                     sound={SOUND_LIST:ZOMBIE_WEAK_HIT}
                 [/frame]
             [/if]
             [else]
                 hits=miss,kill
                 [frame]
-                    duration=150
-                    image="units/undead/zombie-bat-se-4.png"
+                    image="units/undead/zombie-bat-se-4.png:150"
                 [/frame]
             [/else]
             [frame]
-                duration=1
-                image="units/undead/zombie-bat-se-3.png"
+                image="units/undead/zombie-bat-se-3.png:1"
             [/frame]
         [/defend]
         [defend]
@@ -355,104 +279,38 @@
             [/if]
             start_time=-126
             [frame]
-                duration=1
-                image="units/undead/zombie-bat-ne-3.png"
+                image="units/undead/zombie-bat-ne-[3,4].png:[1,100]"
             [/frame]
-            [frame]
-                duration=100
-                image="units/undead/zombie-bat-ne-4.png"
-            [/frame]
             [if]
                 hits=hit
                 [frame]
-                    duration=150
-                    image="units/undead/zombie-bat-ne-4.png"
+                    image="units/undead/zombie-bat-ne-4.png:150"
                     sound={SOUND_LIST:ZOMBIE_WEAK_HIT}
                 [/frame]
             [/if]
             [else]
                 hits=miss,kill
                 [frame]
-                    duration=150
-                    image="units/undead/zombie-bat-ne-4.png"
+                    image="units/undead/zombie-bat-ne-4.png:150"
                 [/frame]
             [/else]
             [frame]
-                duration=1
-                image="units/undead/zombie-bat-ne-3.png"
+                image="units/undead/zombie-bat-ne-3.png:1"
             [/frame]
         [/defend]
         [standing_anim]
             direction=s,se,sw
             start_time=0
             [frame]
-                duration=50
-                image="units/undead/zombie-bat-se-3.png"
+                image="units/undead/zombie-bat-se-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
             [/frame]
-            [frame]
-                duration=60
-                image="units/undead/zombie-bat-se-2.png"
-            [/frame]
-            [frame]
-                duration=80
-                image="units/undead/zombie-bat-se-1.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/zombie-bat-se-2.png"
-            [/frame]
-            [frame]
-                duration=50
-                image="units/undead/zombie-bat-se-3.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/zombie-bat-se-4.png"
-            [/frame]
-            [frame]
-                duration=80
-                image="units/undead/zombie-bat-se-5.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/zombie-bat-se-4.png"
-            [/frame]
         [/standing_anim]
         [standing_anim]
             direction=n,ne,nw
             start_time=0
             [frame]
-                duration=50
-                image="units/undead/zombie-bat-ne-3.png"
+                image="units/undead/zombie-bat-ne-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
             [/frame]
-            [frame]
-                duration=60
-                image="units/undead/zombie-bat-ne-2.png"
-            [/frame]
-            [frame]
-                duration=80
-                image="units/undead/zombie-bat-ne-1.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/zombie-bat-ne-2.png"
-            [/frame]
-            [frame]
-                duration=50
-                image="units/undead/zombie-bat-ne-3.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/zombie-bat-ne-4.png"
-            [/frame]
-            [frame]
-                duration=80
-                image="units/undead/zombie-bat-ne-5.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/zombie-bat-ne-4.png"
-            [/frame]
         [/standing_anim]
 
         [attack_anim]
@@ -463,43 +321,22 @@
             offset=0.0~0.9:200,0.9~0.0:160
             start_time=-200
             [frame]
-                duration=30
-                image="units/undead/zombie-bat-se-3.png"
+                image="units/undead/zombie-bat-se-[3,2].png:30"
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/zombie-bat-se-2.png"
-            [/frame]
-            [frame]
-                duration=30
-                image="units/undead/zombie-bat-se-1.png"
+                image="units/undead/zombie-bat-se-1.png:30"
                 sound=bat-flapping.wav
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/zombie-bat-se-2.png"
+                image="units/undead/zombie-bat-se-[2,3].png:30"
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/zombie-bat-se-3.png"
-            [/frame]
-            [frame]
-                duration=70
-                image="units/undead/zombie-bat-se-4.png"
+                image="units/undead/zombie-bat-se-4.png:70"
                 sound=zombie-attack.wav
             [/frame]
             [frame]
-                duration=50
-                image="units/undead/zombie-bat-se-3.png"
+                image="units/undead/zombie-bat-se-[3,2,3].png:[50*2,40]"
             [/frame]
-            [frame]
-                duration=50
-                image="units/undead/zombie-bat-se-2.png"
-            [/frame]
-            [frame]
-                duration=40
-                image="units/undead/zombie-bat-se-3.png"
-            [/frame]
         [/attack_anim]
 
         [attack_anim]
@@ -510,86 +347,28 @@
             offset=0.0~0.9:200,0.9~0.0:160
             start_time=-200
             [frame]
-                duration=30
-                image="units/undead/zombie-bat-ne-3.png"
+                image="units/undead/zombie-bat-ne-[3,2].png:30"
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/zombie-bat-ne-2.png"
-            [/frame]
-            [frame]
-                duration=30
-                image="units/undead/zombie-bat-ne-1.png"
+                image="units/undead/zombie-bat-ne-1.png:30"
                 sound=bat-flapping.wav
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/zombie-bat-ne-2.png"
+                image="units/undead/zombie-bat-ne-[2,3].png:30"
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/zombie-bat-ne-3.png"
-            [/frame]
-            [frame]
-                duration=70
-                image="units/undead/zombie-bat-ne-4.png"
+                image="units/undead/zombie-bat-ne-4.png:70"
                 sound=zombie-attack.wav
             [/frame]
             [frame]
-                duration=50
-                image="units/undead/zombie-bat-ne-3.png"
+                image="units/undead/zombie-bat-ne-[3,2,3].png:[50*2,40]"
             [/frame]
-            [frame]
-                duration=50
-                image="units/undead/zombie-bat-ne-2.png"
-            [/frame]
-            [frame]
-                duration=40
-                image="units/undead/zombie-bat-ne-3.png"
-            [/frame]
         [/attack_anim]
         [death]
             start_time=0
             [frame]
-                duration=150
-                image="units/undead/zombie-bat-die-1.png"
+                image="units/undead/zombie-bat-die-[1~4].png:150,units/undead/soulless-die-[5~10].png:150"
             [/frame]
-            [frame]
-                duration=150
-                image="units/undead/zombie-bat-die-2.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/zombie-bat-die-3.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/zombie-bat-die-4.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-5.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-6.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-7.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-8.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-9.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-10.png"
-            [/frame]
         [/death]
     [/variation]
 [/unit_type]
Index: data/core/units/undead/Corpse_Ghast.cfg
===================================================================
--- data/core/units/undead/Corpse_Ghast.cfg	(revision 56322)
+++ data/core/units/undead/Corpse_Ghast.cfg	(working copy)
@@ -53,40 +53,24 @@
         [/filter_attack]
         start_time=-450
         [frame]
-            duration=100
-            image="units/undead/ghast-attack-1.png"
+            image="units/undead/ghast-attack-1.png:100"
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image="units/undead/ghast-attack-2.png"
+                image="units/undead/ghast-attack-2.png:150"
                 sound="bite.ogg"
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image="units/undead/ghast-attack-2.png"
+                image="units/undead/ghast-attack-2.png:150"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/undead/ghast-attack-3.png"
+            image="units/undead/ghast-attack-[3~6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/undead/ghast-attack-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/undead/ghast-attack-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/undead/ghast-attack-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/undead/Necro_Dark_Adept.cfg
===================================================================
--- data/core/units/undead/Necro_Dark_Adept.cfg	(revision 56322)
+++ data/core/units/undead/Necro_Dark_Adept.cfg	(working copy)
@@ -63,90 +63,39 @@
         icon=attacks/dark-missile.png
     [/attack]
     [death]
+        start_time=-0
         [frame]
             begin=0
             end=100
-            image="units/undead-necromancers/adept-die1.png"
+            image="units/undead-necromancers/adept-die[1~8].png:[100*4,120*2,140,120]"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/undead-necromancers/adept-die2.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/undead-necromancers/adept-die3.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=400
-            image="units/undead-necromancers/adept-die4.png"
-        [/frame]
-        [frame]
-            begin=400
-            end=520
-            image="units/undead-necromancers/adept-die5.png"
-        [/frame]
-        [frame]
-            begin=520
-            end=640
-            image="units/undead-necromancers/adept-die6.png"
-        [/frame]
-        [frame]
-            begin=640
-            end=780
-            image="units/undead-necromancers/adept-die7.png"
-        [/frame]
-        [frame]
-            begin=780
-            end=900
-            image="units/undead-necromancers/adept-die8.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             range=ranged
         [/filter_attack]
+        missile_start_time=-50
         [missile_frame]
-            begin=-50
-            end=150
+            duration=200
             image="projectiles/darkmissile-n.png"
             image_diagonal="projectiles/darkmissile-ne.png"
         [/missile_frame]
+        start_time=-450
         [frame]
-            begin=-450
-            end=-420
-            image="units/undead-necromancers/adept.png"
+            image="units/undead-necromancers/adept.png:30"
         [/frame]
         [frame]
-            begin=-420
-            end=-395
-            image="units/undead-necromancers/adept-magic-1.png"
+            image="units/undead-necromancers/adept-magic-[1~3].png:[35,75,20]"
         [/frame]
         [frame]
-            begin=-395
-            end=-320
-            image="units/undead-necromancers/adept-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-320
-            end=-300
             image="units/undead-necromancers/adept-magic-3.png"
-        [/frame]
-        [frame]
-            begin=-300
-            end=-50
-            image="units/undead-necromancers/adept-magic-3.png"
             halo=halo/undead/dark-magic-[1~5].png:50
             halo_x,halo_y=0,-12
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-50
-                end=0
-                image="units/undead-necromancers/adept-magic-3.png"
+                image="units/undead-necromancers/adept-magic-3.png:50"
                 halo=halo/undead/dark-magic-6.png
                 halo_x,halo_y=0,-12
                 sound=magic-dark-miss.ogg
@@ -155,84 +104,47 @@
         [else]
             hits=yes
             [frame]
-                begin=-50
-                end=0
-                image="units/undead-necromancers/adept-magic-3.png"
+                image="units/undead-necromancers/adept-magic-3.png:50"
                 halo=halo/undead/dark-magic-6.png
                 halo_x,halo_y=0,-12
                 sound=magic-dark.ogg
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=50
-            image="units/undead-necromancers/adept-magic-2.png"
+            image="units/undead-necromancers/adept-magic-[2,1].png:[50,40]"
         [/frame]
         [frame]
-            begin=50
-            end=90
-            image="units/undead-necromancers/adept-magic-1.png"
+            image="units/undead-necromancers/adept.png:10"
         [/frame]
-        [frame]
-            begin=90
-            end=100
-            image="units/undead-necromancers/adept.png"
-        [/frame]
     [/attack_anim]
     [recruiting_anim]
         [filter_second]
             race=undead
         [/filter_second]
+        start_time=-450
         [frame]
-            begin=-450
-            end=-420
-            image="units/undead-necromancers/adept.png"
+            image="units/undead-necromancers/adept.png:30"
         [/frame]
         [frame]
-            begin=-420
-            end=-395
-            image="units/undead-necromancers/adept-magic-1.png"
+            image="units/undead-necromancers/adept-magic-[1~3].png:[35,75,20]"
         [/frame]
         [frame]
-            begin=-395
-            end=-320
-            image="units/undead-necromancers/adept-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-320
-            end=-300
             image="units/undead-necromancers/adept-magic-3.png"
-        [/frame]
-        [frame]
-            begin=-300
-            end=-50
-            image="units/undead-necromancers/adept-magic-3.png"
             halo=halo/undead/dark-magic-[1~5].png:50
             halo_x,halo_y=0,-12
         [/frame]
         [frame]
-            begin=-50
-            end=0
-            image="units/undead-necromancers/adept-magic-3.png"
+            image="units/undead-necromancers/adept-magic-3.png:50"
             halo=halo/undead/dark-magic-6.png
             halo_x,halo_y=0,-12
             sound=magic-dark.ogg
         [/frame]
         [frame]
-            begin=0
-            end=50
-            image="units/undead-necromancers/adept-magic-2.png"
+            image="units/undead-necromancers/adept-magic-[2,1].png:[50,40]"
         [/frame]
         [frame]
-            begin=50
-            end=90
-            image="units/undead-necromancers/adept-magic-1.png"
+            image="units/undead-necromancers/adept.png:10"
         [/frame]
-        [frame]
-            begin=90
-            end=100
-            image="units/undead-necromancers/adept.png"
-        [/frame]
     [/recruiting_anim]
     [female]
         gender=female
@@ -259,71 +171,53 @@
                 race=undead
             [/filter_second]
             [frame]
-                image="units/undead-necromancers/adept+female.png"
+                image="units/undead-necromancers/adept+female.png:30"
             [/frame]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-1.png"
+                image="units/undead-necromancers/adept+female-magic-[1~3].png:[35,75,20]"
             [/frame]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-2.png"
-            [/frame]
-            [frame]
                 image="units/undead-necromancers/adept+female-magic-3.png"
             [/frame]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-3.png"
+                image="units/undead-necromancers/adept+female-magic-3.png:50"
             [/frame]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-3.png"
+                image="units/undead-necromancers/adept+female-magic-[2,1].png:[50,40]"
             [/frame]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-2.png"
+                image="units/undead-necromancers/adept+female.png:10"
             [/frame]
-            [frame]
-                image="units/undead-necromancers/adept+female-magic-1.png"
-            [/frame]
-            [frame]
-                image="units/undead-necromancers/adept+female.png"
-            [/frame]
         [/recruiting_anim]
         [attack_anim]
             [filter_attack]
                 range=ranged
             [/filter_attack]
             [frame]
-                image="units/undead-necromancers/adept+female.png"
+                image="units/undead-necromancers/adept+female.png:30"
             [/frame]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-1.png"
+                image="units/undead-necromancers/adept+female-magic-[1~3].png:[35,75,20]"
             [/frame]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-2.png"
-            [/frame]
-            [frame]
                 image="units/undead-necromancers/adept+female-magic-3.png"
             [/frame]
-            [frame]
-                image="units/undead-necromancers/adept+female-magic-3.png"
-            [/frame]
             [if]
                 [frame]
-                    image="units/undead-necromancers/adept+female-magic-3.png"
+                    image="units/undead-necromancers/adept+female-magic-3.png:50"
                 [/frame]
             [/if]
             [else]
                 [frame]
-                    image="units/undead-necromancers/adept+female-magic-3.png"
+                    image="units/undead-necromancers/adept+female-magic-3.png:50"
                 [/frame]
             [/else]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-2.png"
+                image="units/undead-necromancers/adept+female-magic-[2,1].png:[50,40]"
             [/frame]
             [frame]
-                image="units/undead-necromancers/adept+female-magic-1.png"
+                image="units/undead-necromancers/adept+female.png:10"
             [/frame]
-            [frame]
-                image="units/undead-necromancers/adept+female.png"
-            [/frame]
         [/attack_anim]
     [/female]
 [/unit_type]
Index: data/core/units/undead/Corpse_Soulless.cfg
===================================================================
--- data/core/units/undead/Corpse_Soulless.cfg	(revision 56322)
+++ data/core/units/undead/Corpse_Soulless.cfg	(working copy)
@@ -43,43 +43,17 @@
     [death]
         start_time=0
         [frame]
-            duration=150
-            image="units/undead/soulless-die-4.png"
+            image="units/undead/soulless-die-[4~10].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-8.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-9.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-10.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             name=touch
         [/filter_attack]
         direction=s
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_NAME}-attack-s.png"
+            image="units/undead/{BASE_NAME}-attack-s.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -88,10 +62,9 @@
             name=touch
         [/filter_attack]
         direction=n
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_NAME}-attack-n.png"
+            image="units/undead/{BASE_NAME}-attack-n.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -100,10 +73,9 @@
             name=touch
         [/filter_attack]
         direction=se,sw,ne,nw
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_NAME}-attack.png"
+            image="units/undead/{BASE_NAME}-attack.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -116,55 +88,17 @@
     [death]
         start_time=0
         [frame]
-            duration=150
-            image="units/undead/{BASE_NAME}-die-1.png"
+            image="units/undead/{BASE_NAME}-die-[1~4].png:150,units/undead/soulless-die-[5~10].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/undead/{BASE_NAME}-die-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/{BASE_NAME}-die-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/{BASE_NAME}-die-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-8.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-9.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/undead/soulless-die-10.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
             name=touch
         [/filter_attack]
         direction=s
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_NAME}-attack-s.png"
+            image="units/undead/{BASE_NAME}-attack-s.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -173,10 +107,9 @@
             name=touch
         [/filter_attack]
         direction=n
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_NAME}-attack-n.png"
+            image="units/undead/{BASE_NAME}-attack-n.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -185,10 +118,9 @@
             name=touch
         [/filter_attack]
         direction=se,sw,ne,nw
+        start_time=-200
         [frame]
-            begin=-200
-            end=200
-            image="units/undead/{BASE_NAME}-attack.png"
+            image="units/undead/{BASE_NAME}-attack.png:400"
             sound=zombie-attack.wav
         [/frame]
     [/attack_anim]
@@ -321,31 +253,23 @@
             [/if]
             start_time=-126
             [frame]
-                duration=1
-                image="units/undead/soulless-bat-se-3.png"
+                image="units/undead/soulless-bat-se-[3,4].png:[1,100]"
             [/frame]
-            [frame]
-                duration=100
-                image="units/undead/soulless-bat-se-4.png"
-            [/frame]
             [if]
                 hits=hit
                 [frame]
-                    duration=150
-                    image="units/undead/soulless-bat-se-4.png"
+                    image="units/undead/soulless-bat-se-4.png:150"
                     sound={SOUND_LIST:ZOMBIE_WEAK_HIT}
                 [/frame]
             [/if]
             [else]
                 hits=miss,kill
                 [frame]
-                    duration=150
-                    image="units/undead/soulless-bat-se-4.png"
+                    image="units/undead/soulless-bat-se-4.png:150"
                 [/frame]
             [/else]
             [frame]
-                duration=1
-                image="units/undead/soulless-bat-se-3.png"
+                image="units/undead/soulless-bat-se-3.png:1"
             [/frame]
         [/defend]
         [defend]
@@ -356,104 +280,38 @@
             [/if]
             start_time=-126
             [frame]
-                duration=1
-                image="units/undead/soulless-bat-ne-3.png"
+                image="units/undead/soulless-bat-ne-[3,4].png:[1,100]"
             [/frame]
-            [frame]
-                duration=100
-                image="units/undead/soulless-bat-ne-4.png"
-            [/frame]
             [if]
                 hits=hit
                 [frame]
-                    duration=150
-                    image="units/undead/soulless-bat-ne-4.png"
+                    image="units/undead/soulless-bat-ne-4.png:150"
                     sound={SOUND_LIST:ZOMBIE_WEAK_HIT}
                 [/frame]
             [/if]
             [else]
                 hits=miss,kill
                 [frame]
-                    duration=150
-                    image="units/undead/soulless-bat-ne-4.png"
+                    image="units/undead/soulless-bat-ne-4.png:150"
                 [/frame]
             [/else]
             [frame]
-                duration=1
-                image="units/undead/soulless-bat-ne-3.png"
+                image="units/undead/soulless-bat-ne-3.png:1"
             [/frame]
         [/defend]
         [standing_anim]
             direction=s,se,sw
             start_time=0
             [frame]
-                duration=50
-                image="units/undead/soulless-bat-se-3.png"
+                image="units/undead/soulless-bat-se-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
             [/frame]
-            [frame]
-                duration=60
-                image="units/undead/soulless-bat-se-2.png"
-            [/frame]
-            [frame]
-                duration=80
-                image="units/undead/soulless-bat-se-1.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/soulless-bat-se-2.png"
-            [/frame]
-            [frame]
-                duration=50
-                image="units/undead/soulless-bat-se-3.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/soulless-bat-se-4.png"
-            [/frame]
-            [frame]
-                duration=80
-                image="units/undead/soulless-bat-se-5.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/soulless-bat-se-4.png"
-            [/frame]
         [/standing_anim]
         [standing_anim]
             direction=n,ne,nw
             start_time=0
             [frame]
-                duration=50
-                image="units/undead/soulless-bat-ne-3.png"
+                image="units/undead/soulless-bat-ne-[3~1,2~5,4].png:[50,60,80,60,50,60,80,60]"
             [/frame]
-            [frame]
-                duration=60
-                image="units/undead/soulless-bat-ne-2.png"
-            [/frame]
-            [frame]
-                duration=80
-                image="units/undead/soulless-bat-ne-1.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/soulless-bat-ne-2.png"
-            [/frame]
-            [frame]
-                duration=50
-                image="units/undead/soulless-bat-ne-3.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/soulless-bat-ne-4.png"
-            [/frame]
-            [frame]
-                duration=80
-                image="units/undead/soulless-bat-ne-5.png"
-            [/frame]
-            [frame]
-                duration=60
-                image="units/undead/soulless-bat-ne-4.png"
-            [/frame]
         [/standing_anim]
 
         [attack_anim]
@@ -464,43 +322,22 @@
             offset=0.0~0.9:200,0.9~0.0:160
             start_time=-200
             [frame]
-                duration=30
-                image="units/undead/soulless-bat-se-3.png"
+                image="units/undead/soulless-bat-se-[3,2].png:30"
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/soulless-bat-se-2.png"
-            [/frame]
-            [frame]
-                duration=30
-                image="units/undead/soulless-bat-se-1.png"
+                image="units/undead/soulless-bat-se-1.png:30"
                 sound=bat-flapping.wav
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/soulless-bat-se-2.png"
+                image="units/undead/soulless-bat-se-[2,3].png:30"
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/soulless-bat-se-3.png"
-            [/frame]
-            [frame]
-                duration=70
-                image="units/undead/soulless-bat-se-4.png"
+                image="units/undead/soulless-bat-se-4.png:70"
                 sound=zombie-attack.wav
             [/frame]
             [frame]
-                duration=50
-                image="units/undead/soulless-bat-se-3.png"
+                image="units/undead/soulless-bat-se-[3,2,3].png:[50*2,40]"
             [/frame]
-            [frame]
-                duration=50
-                image="units/undead/soulless-bat-se-2.png"
-            [/frame]
-            [frame]
-                duration=40
-                image="units/undead/soulless-bat-se-3.png"
-            [/frame]
         [/attack_anim]
 
         [attack_anim]
@@ -511,86 +348,28 @@
             offset=0.0~0.9:200,0.9~0.0:160
             start_time=-200
             [frame]
-                duration=30
-                image="units/undead/soulless-bat-ne-3.png"
+                image="units/undead/soulless-bat-ne-[3,2].png:30"
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/soulless-bat-ne-2.png"
-            [/frame]
-            [frame]
-                duration=30
-                image="units/undead/soulless-bat-ne-1.png"
+                image="units/undead/soulless-bat-ne-1.png:30"
                 sound=bat-flapping.wav
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/soulless-bat-ne-2.png"
+                image="units/undead/soulless-bat-ne-[2,3].png:30"
             [/frame]
             [frame]
-                duration=30
-                image="units/undead/soulless-bat-ne-3.png"
-            [/frame]
-            [frame]
-                duration=70
-                image="units/undead/soulless-bat-ne-4.png"
+                image="units/undead/soulless-bat-ne-4.png:70"
                 sound=zombie-attack.wav
             [/frame]
             [frame]
-                duration=50
-                image="units/undead/soulless-bat-ne-3.png"
+                image="units/undead/soulless-bat-ne-[3,2,3].png:[50*2,40]"
             [/frame]
-            [frame]
-                duration=50
-                image="units/undead/soulless-bat-ne-2.png"
-            [/frame]
-            [frame]
-                duration=40
-                image="units/undead/soulless-bat-ne-3.png"
-            [/frame]
         [/attack_anim]
         [death]
             start_time=0
             [frame]
-                duration=150
-                image="units/undead/soulless-bat-die-1.png"
+                image="units/undead/soulless-bat-die-[1~4].png:150,units/undead/soulless-die-[5~10].png:150"
             [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-bat-die-2.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-bat-die-3.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-bat-die-4.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-5.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-6.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-7.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-8.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-9.png"
-            [/frame]
-            [frame]
-                duration=150
-                image="units/undead/soulless-die-10.png"
-            [/frame]
         [/death]
     [/variation]
 [/unit_type]
Index: data/core/units/undead/Corpse_Ghoul.cfg
===================================================================
--- data/core/units/undead/Corpse_Ghoul.cfg	(revision 56322)
+++ data/core/units/undead/Corpse_Ghoul.cfg	(working copy)
@@ -50,49 +50,33 @@
         [filter_attack]
             name=claws
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/undead/ghoul.png"
+            image="units/undead/ghoul.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-125
-            image="units/undead/ghoul-attack-1.png"
+            image="units/undead/ghoul-attack-1.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-125
-                end=-50
-                image="units/undead/ghoul-attack-2.png"
+                image="units/undead/ghoul-attack-2.png:75"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-125
-                end=-50
-                image="units/undead/ghoul-attack-2.png"
+                image="units/undead/ghoul-attack-2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         {SOUND:POISON}
         [frame]
-            begin=-50
-            end=50
-            image="units/undead/ghoul-attack-3.png"
+            image="units/undead/ghoul-attack-[3,4].png:[100,75]"
         [/frame]
         [frame]
-            begin=50
-            end=125
-            image="units/undead/ghoul-attack-4.png"
+            image="units/undead/ghoul.png:75"
         [/frame]
-        [frame]
-            begin=125
-            end=200
-            image="units/undead/ghoul.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/undead/Necromancer.cfg
===================================================================
--- data/core/units/undead/Necromancer.cfg	(revision 56322)
+++ data/core/units/undead/Necromancer.cfg	(working copy)
@@ -74,83 +74,52 @@
         [filter_second]
             race=undead
         [/filter_second]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/undead-necromancers/necromancer-magic-1.png"
+            image="units/undead-necromancers/necromancer-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/undead-necromancers/necromancer-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/undead-necromancers/necromancer-magic-3.png"
+            image="units/undead-necromancers/necromancer-magic-3.png:75"
             halo=halo/undead/black-magic-1.png
         [/frame]
         [frame]
-            begin=-75
-            end=0
-            image="units/undead-necromancers/necromancer-magic-3.png"
+            image="units/undead-necromancers/necromancer-magic-3.png:75"
             sound=magic-dark.ogg
             halo=halo/undead/black-magic-2.png
         [/frame]
         [frame]
-            begin=0
-            end=200
             image="units/undead-necromancers/necromancer-magic-3.png"
             halo=halo/undead/black-magic-[3~5].png:[75,75,50]
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/undead-necromancers/necromancer-magic-2.png"
+            image="units/undead-necromancers/necromancer-magic-[2,1].png:50"
         [/frame]
         [frame]
-            begin=250
-            end=300
-            image="units/undead-necromancers/necromancer-magic-1.png"
+            image="units/undead-necromancers/necromancer.png:1"
         [/frame]
-        [frame]
-            duration=1
-            image="units/undead-necromancers/necromancer.png"
-        [/frame]
     [/recruiting_anim]
     [attack_anim]
         [filter_attack]
             range=ranged
         [/filter_attack]
+        missile_start_time=-100
         [missile_frame]
-            begin=-100
-            end=100
-            image="projectiles/darkmissile-n.png"
+            image="projectiles/darkmissile-n.png:200"
             image_diagonal="projectiles/darkmissile-ne.png"
         [/missile_frame]
 
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/undead-necromancers/necromancer-magic-1.png"
+            image="units/undead-necromancers/necromancer-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/undead-necromancers/necromancer-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/undead-necromancers/necromancer-magic-3.png"
+            image="units/undead-necromancers/necromancer-magic-3.png:75"
             halo=halo/undead/black-magic-1.png
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=0
-                image="units/undead-necromancers/necromancer-magic-3.png"
+                image="units/undead-necromancers/necromancer-magic-3.png:75"
                 sound=magic-dark.ogg
                 halo=halo/undead/black-magic-2.png
             [/frame]
@@ -158,71 +127,49 @@
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=0
-                image="units/undead-necromancers/necromancer-magic-3.png"
+                image="units/undead-necromancers/necromancer-magic-3.png:75"
                 sound=magic-dark-miss.ogg
                 halo=halo/undead/black-magic-2.png
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=200
             image="units/undead-necromancers/necromancer-magic-3.png"
             halo=halo/undead/black-magic-[3~5].png:[75,75,50]
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/undead-necromancers/necromancer-magic-2.png"
+            image="units/undead-necromancers/necromancer-magic-[2,1].png:50"
         [/frame]
-        [frame]
-            begin=250
-            end=300
-            image="units/undead-necromancers/necromancer-magic-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=plague staff
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/undead-necromancers/necromancer.png"
+            image="units/undead-necromancers/necromancer.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/undead-necromancers/necromancer-attack-staff-1.png"
+            image="units/undead-necromancers/necromancer-attack-staff-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/undead-necromancers/necromancer-attack-staff-2.png"
+                image="units/undead-necromancers/necromancer-attack-staff-2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/undead-necromancers/necromancer-attack-staff-2.png"
+                image="units/undead-necromancers/necromancer-attack-staff-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/undead-necromancers/necromancer-magic-1.png"
+            image="units/undead-necromancers/necromancer-magic-1.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=250
-            image="units/undead-necromancers/necromancer.png"
+            image="units/undead-necromancers/necromancer.png:75"
         [/frame]
     [/attack_anim]
     [female]
@@ -249,100 +196,80 @@
                 race=undead
             [/filter_second]
             [frame]
-                image="units/undead-necromancers/necromancer+female-magic-1.png"
+                image="units/undead-necromancers/necromancer+female-magic-[1,2].png:75"
             [/frame]
             [frame]
-                image="units/undead-necromancers/necromancer+female-magic-2.png"
+                image="units/undead-necromancers/necromancer+female-magic-3.png:75"
             [/frame]
             [frame]
-                image="units/undead-necromancers/necromancer+female-magic-3.png"
+                image="units/undead-necromancers/necromancer+female-magic-3.png:75"
             [/frame]
             [frame]
                 image="units/undead-necromancers/necromancer+female-magic-3.png"
             [/frame]
             [frame]
-                image="units/undead-necromancers/necromancer+female-magic-3.png"
+                image="units/undead-necromancers/necromancer+female-magic-[2,1].png:50"
             [/frame]
             [frame]
-                begin=200
-                end=250
-                image="units/undead-necromancers/necromancer+female-magic-2.png"
+                image="units/undead-necromancers/necromancer+female.png:1"
             [/frame]
-            [frame]
-                begin=250
-                end=300
-                image="units/undead-necromancers/necromancer+female-magic-1.png"
-            [/frame]
-            [frame]
-                image="units/undead-necromancers/necromancer+female.png"
-            [/frame]
         [/recruiting_anim]
         [attack_anim]
             [filter_attack]
                 range=ranged
             [/filter_attack]
             [frame]
-                image="units/undead-necromancers/necromancer+female-magic-1.png"
+                image="units/undead-necromancers/necromancer+female-magic-[1,2].png:75"
             [/frame]
             [frame]
-                image="units/undead-necromancers/necromancer+female-magic-2.png"
+                image="units/undead-necromancers/necromancer+female-magic-3.png:75"
             [/frame]
-            [frame]
-                image="units/undead-necromancers/necromancer+female-magic-3.png"
-            [/frame]
             [if]
                 hits=yes
                 [frame]
-                    image="units/undead-necromancers/necromancer+female-magic-3.png"
+                    image="units/undead-necromancers/necromancer+female-magic-3.png:75"
                 [/frame]
             [/if]
             [else]
                 hits=no
                 [frame]
-                    image="units/undead-necromancers/necromancer+female-magic-3.png"
+                    image="units/undead-necromancers/necromancer+female-magic-3.png:75"
                 [/frame]
             [/else]
             [frame]
                 image="units/undead-necromancers/necromancer+female-magic-3.png"
             [/frame]
             [frame]
-                begin=200
-                end=250
-                image="units/undead-necromancers/necromancer+female-magic-2.png"
+                image="units/undead-necromancers/necromancer+female-magic-[2,1].png:50"
             [/frame]
-            [frame]
-                begin=250
-                end=300
-                image="units/undead-necromancers/necromancer+female-magic-1.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=plague staff
             [/filter_attack]
             [frame]
-                image="units/undead-necromancers/necromancer+female.png"
+                image="units/undead-necromancers/necromancer+female.png:50"
             [/frame]
             [frame]
-                image="units/undead-necromancers/necromancer+female-attack-staff-1.png"
+                image="units/undead-necromancers/necromancer+female-attack-staff-1.png:100"
             [/frame]
             [if]
                 hits=yes
                 [frame]
-                    image="units/undead-necromancers/necromancer+female-attack-staff-2.png"
+                    image="units/undead-necromancers/necromancer+female-attack-staff-2.png:200"
                 [/frame]
             [/if]
             [else]
                 hits=no
                 [frame]
-                    image="units/undead-necromancers/necromancer+female-attack-staff-2.png"
+                    image="units/undead-necromancers/necromancer+female-attack-staff-2.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/undead-necromancers/necromancer+female-magic-1.png"
+                image="units/undead-necromancers/necromancer+female-magic-1.png:75"
             [/frame]
             [frame]
-                image="units/undead-necromancers/necromancer+female.png"
+                image="units/undead-necromancers/necromancer+female.png:75"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/undead/Skele_Bone_Shooter.cfg
===================================================================
--- data/core/units/undead/Skele_Bone_Shooter.cfg	(revision 56322)
+++ data/core/units/undead/Skele_Bone_Shooter.cfg	(working copy)
@@ -61,55 +61,36 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/bone-n.png"
             image_diagonal="projectiles/bone-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/undead-skeletal/bone-shooter-bow.png"
+            image="units/undead-skeletal/bone-shooter-bow.png:65"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-380
-                end=-305
-                image="units/undead-skeletal/bone-shooter-bow-attack-1.png"
+                image="units/undead-skeletal/bone-shooter-bow-attack-1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-380
-                end=-305
-                image="units/undead-skeletal/bone-shooter-bow-attack-1.png"
+                image="units/undead-skeletal/bone-shooter-bow-attack-1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-305
-            end=-230
-            image="units/undead-skeletal/bone-shooter-bow-attack-2.png"
+            image="units/undead-skeletal/bone-shooter-bow-attack-[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-230
-            end=-130
-            image="units/undead-skeletal/bone-shooter-bow-attack-3.png"
+            image="units/undead-skeletal/bone-shooter-bow.png:65"
         [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/undead-skeletal/bone-shooter-bow-attack-4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/undead-skeletal/bone-shooter-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -117,40 +98,30 @@
         [/filter_attack]
         start_time=-275
         [frame]
-            duration=50
-            image="units/undead-skeletal/bone-shooter-melee-defend-1.png"
+            image="units/undead-skeletal/bone-shooter-melee-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/undead-skeletal/bone-shooter-melee-attack-1.png"
+            image="units/undead-skeletal/bone-shooter-melee-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/undead-skeletal/bone-shooter-melee-attack-2.png"
+                image="units/undead-skeletal/bone-shooter-melee-attack-2.png:100"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/undead-skeletal/bone-shooter-melee-attack-2.png"
+                image="units/undead-skeletal/bone-shooter-melee-attack-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/undead-skeletal/bone-shooter-melee-attack-3.png"
+            image="units/undead-skeletal/bone-shooter-melee-attack-[3,4].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/undead-skeletal/bone-shooter-melee-attack-4.png"
+            image="units/undead-skeletal/bone-shooter-melee-defend-1.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/undead-skeletal/bone-shooter-melee-defend-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/undead/Necro_Dark_Sorcerer.cfg
===================================================================
--- data/core/units/undead/Necro_Dark_Sorcerer.cfg	(revision 56322)
+++ data/core/units/undead/Necro_Dark_Sorcerer.cfg	(working copy)
@@ -37,49 +37,29 @@
         [filter_second]
             race=undead
         [/filter_second]
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/undead-necromancers/dark-sorcerer-magic-1.png"
+            image="units/undead-necromancers/dark-sorcerer-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/undead-necromancers/dark-sorcerer-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/undead-necromancers/dark-sorcerer-magic-3.png"
+            image="units/undead-necromancers/dark-sorcerer-magic-3.png:75"
             halo=halo/undead/black-magic-1.png
         [/frame]
         [frame]
-            begin=-75
-            end=0
-            image="units/undead-necromancers/dark-sorcerer-magic-3.png"
+            image="units/undead-necromancers/dark-sorcerer-magic-3.png:75"
             halo=halo/undead/black-magic-2.png
             sound=magic-dark.ogg
         [/frame]
         [frame]
-            begin=0
-            end=200
             image="units/undead-necromancers/dark-sorcerer-magic-3.png"
             halo=halo/undead/black-magic-[3~5].png:[75,75,50]
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/undead-necromancers/dark-sorcerer-magic-2.png"
+            image="units/undead-necromancers/dark-sorcerer-magic-[2,1].png:50"
         [/frame]
         [frame]
-            begin=250
-            end=300
-            image="units/undead-necromancers/dark-sorcerer-magic-1.png"
+            image="units/undead-necromancers/dark-sorcerer.png:1"
         [/frame]
-        [frame]
-            duration=1
-            image="units/undead-necromancers/dark-sorcerer.png"
-        [/frame]
     [/recruiting_anim]
     [attack]
         name=staff
@@ -125,28 +105,18 @@
             image_diagonal="projectiles/darkmissile-ne.png"
         [/missile_frame]
 
+        start_time=-300
         [frame]
-            begin=-300
-            end=-225
-            image="units/undead-necromancers/dark-sorcerer-magic-1.png"
+            image="units/undead-necromancers/dark-sorcerer-magic-[1,2].png:75"
         [/frame]
         [frame]
-            begin=-225
-            end=-150
-            image="units/undead-necromancers/dark-sorcerer-magic-2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/undead-necromancers/dark-sorcerer-magic-3.png"
+            image="units/undead-necromancers/dark-sorcerer-magic-3.png:75"
             halo=halo/undead/black-magic-1.png
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-75
-                end=0
-                image="units/undead-necromancers/dark-sorcerer-magic-3.png"
+                image="units/undead-necromancers/dark-sorcerer-magic-3.png:75"
                 sound=magic-dark.ogg
                 halo=halo/undead/black-magic-2.png
             [/frame]
@@ -154,71 +124,49 @@
         [else]
             hits=no
             [frame]
-                begin=-75
-                end=0
-                image="units/undead-necromancers/dark-sorcerer-magic-3.png"
+                image="units/undead-necromancers/dark-sorcerer-magic-3.png:75"
                 sound=magic-dark-miss.ogg
                 halo=halo/undead/black-magic-2.png
             [/frame]
         [/else]
         [frame]
-            begin=0
-            end=200
             image="units/undead-necromancers/dark-sorcerer-magic-3.png"
             halo=halo/undead/black-magic-[3~5].png:[75,75,50]
         [/frame]
         [frame]
-            begin=200
-            end=250
-            image="units/undead-necromancers/dark-sorcerer-magic-2.png"
+            image="units/undead-necromancers/dark-sorcerer-magic-[2,1].png:50"
         [/frame]
-        [frame]
-            begin=250
-            end=300
-            image="units/undead-necromancers/dark-sorcerer-magic-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=staff
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/undead-necromancers/dark-sorcerer.png"
+            image="units/undead-necromancers/dark-sorcerer.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-100
-            image="units/undead-necromancers/dark-sorcerer-attack-staff-1.png"
+            image="units/undead-necromancers/dark-sorcerer-attack-staff-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/undead-necromancers/dark-sorcerer-attack-staff-2.png"
+                image="units/undead-necromancers/dark-sorcerer-attack-staff-2.png:200"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/undead-necromancers/dark-sorcerer-attack-staff-2.png"
+                image="units/undead-necromancers/dark-sorcerer-attack-staff-2.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=175
-            image="units/undead-necromancers/dark-sorcerer-magic-1.png"
+            image="units/undead-necromancers/dark-sorcerer-magic-1.png:75"
         [/frame]
         [frame]
-            begin=175
-            end=250
-            image="units/undead-necromancers/dark-sorcerer.png"
+            image="units/undead-necromancers/dark-sorcerer.png:75"
         [/frame]
     [/attack_anim]
     [female]
@@ -248,101 +196,80 @@
                 race=undead
             [/filter_second]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-magic-1.png"
+                image="units/undead-necromancers/dark-sorcerer+female-magic-[1,2].png:75"
             [/frame]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-magic-2.png"
+                image="units/undead-necromancers/dark-sorcerer+female-magic-3.png:75"
             [/frame]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-magic-3.png"
+                image="units/undead-necromancers/dark-sorcerer+female-magic-3.png:75"
             [/frame]
             [frame]
                 image="units/undead-necromancers/dark-sorcerer+female-magic-3.png"
             [/frame]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-magic-3.png"
+                image="units/undead-necromancers/dark-sorcerer+female-magic-[2,1].png:50"
             [/frame]
             [frame]
-                begin=200
-                end=250
-                image="units/undead-necromancers/dark-sorcerer+female-magic-2.png"
+                image="units/undead-necromancers/dark-sorcerer+female.png:1"
             [/frame]
-            [frame]
-                begin=250
-                end=300
-                image="units/undead-necromancers/dark-sorcerer+female-magic-1.png"
-            [/frame]
-            [frame]
-                duration=1
-                image="units/undead-necromancers/dark-sorcerer+female.png"
-            [/frame]
         [/recruiting_anim]
         [attack_anim]
             [filter_attack]
                 range=ranged
             [/filter_attack]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-magic-1.png"
+                image="units/undead-necromancers/dark-sorcerer+female-magic-[1,2].png:75"
             [/frame]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-magic-2.png"
+                image="units/undead-necromancers/dark-sorcerer+female-magic-3.png:75"
             [/frame]
-            [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-magic-3.png"
-            [/frame]
             [if]
                 hits=yes
                 [frame]
-                    image="units/undead-necromancers/dark-sorcerer+female-magic-3.png"
+                    image="units/undead-necromancers/dark-sorcerer+female-magic-3.png:75"
                 [/frame]
             [/if]
             [else]
                 hits=no
                 [frame]
-                    image="units/undead-necromancers/dark-sorcerer+female-magic-3.png"
+                    image="units/undead-necromancers/dark-sorcerer+female-magic-3.png:75"
                 [/frame]
             [/else]
             [frame]
                 image="units/undead-necromancers/dark-sorcerer+female-magic-3.png"
             [/frame]
             [frame]
-                begin=200
-                end=250
-                image="units/undead-necromancers/dark-sorcerer+female-magic-2.png"
+                image="units/undead-necromancers/dark-sorcerer+female-magic-[2,1].png:50"
             [/frame]
-            [frame]
-                begin=250
-                end=300
-                image="units/undead-necromancers/dark-sorcerer+female-magic-1.png"
-            [/frame]
         [/attack_anim]
         [attack_anim]
             [filter_attack]
                 name=staff
             [/filter_attack]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female.png"
+                image="units/undead-necromancers/dark-sorcerer+female.png:50"
             [/frame]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-attack-staff-1.png"
+                image="units/undead-necromancers/dark-sorcerer+female-attack-staff-1.png:100"
             [/frame]
             [if]
                 hits=yes
                 [frame]
-                    image="units/undead-necromancers/dark-sorcerer+female-attack-staff-2.png"
+                    image="units/undead-necromancers/dark-sorcerer+female-attack-staff-2.png:200"
                 [/frame]
             [/if]
             [else]
                 hits=no
                 [frame]
-                    image="units/undead-necromancers/dark-sorcerer+female-attack-staff-2.png"
+                    image="units/undead-necromancers/dark-sorcerer+female-attack-staff-2.png:200"
                 [/frame]
             [/else]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female-magic-1.png"
+                image="units/undead-necromancers/dark-sorcerer+female-magic-1.png:75"
             [/frame]
             [frame]
-                image="units/undead-necromancers/dark-sorcerer+female.png"
+                image="units/undead-necromancers/dark-sorcerer+female.png:75"
             [/frame]
         [/attack_anim]
     [/female]
Index: data/core/units/undead/Corpse_Necrophage.cfg
===================================================================
--- data/core/units/undead/Corpse_Necrophage.cfg	(revision 56322)
+++ data/core/units/undead/Corpse_Necrophage.cfg	(working copy)
@@ -50,49 +50,33 @@
         [filter_attack]
             name=claws
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-200
-            image="units/undead/necrophage.png"
+            image="units/undead/necrophage.png:50"
         [/frame]
         [frame]
-            begin=-200
-            end=-125
-            image="units/undead/necrophage-attack-1.png"
+            image="units/undead/necrophage-attack-1.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-125
-                end=-50
-                image="units/undead/necrophage-attack-2.png"
+                image="units/undead/necrophage-attack-2.png:75"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-125
-                end=-50
-                image="units/undead/necrophage-attack-2.png"
+                image="units/undead/necrophage-attack-2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         {SOUND:POISON}
         [frame]
-            begin=-50
-            end=50
-            image="units/undead/necrophage-attack-4.png"
+            image="units/undead/necrophage-attack-[3,4].png:[100,75]"
         [/frame]
         [frame]
-            begin=50
-            end=125
-            image="units/undead/necrophage-attack-4.png"
+            image="units/undead/necrophage.png:75"
         [/frame]
-        [frame]
-            begin=125
-            end=200
-            image="units/undead/necrophage.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/undead/Skele_Banebow.cfg
===================================================================
--- data/core/units/undead/Skele_Banebow.cfg	(revision 56322)
+++ data/core/units/undead/Skele_Banebow.cfg	(working copy)
@@ -63,55 +63,36 @@
         [filter_attack]
             name=bow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/bone-n.png"
             image_diagonal="projectiles/bone-ne.png"
         [/missile_frame]
+        start_time=-445
         [frame]
-            begin=-445
-            end=-380
-            image="units/undead-skeletal/banebow-bow.png"
+            image="units/undead-skeletal/banebow-bow.png:65"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-380
-                end=-305
-                image="units/undead-skeletal/banebow-bow-attack-1.png"
+                image="units/undead-skeletal/banebow-bow-attack-1.png:75"
                 sound=bow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-380
-                end=-305
-                image="units/undead-skeletal/banebow-bow-attack-1.png"
+                image="units/undead-skeletal/banebow-bow-attack-1.png:75"
                 sound=bow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-305
-            end=-230
-            image="units/undead-skeletal/banebow-bow-attack-2.png"
+            image="units/undead-skeletal/banebow-bow-attack-[2~4].png:[75,100,130]"
         [/frame]
         [frame]
-            begin=-230
-            end=-130
-            image="units/undead-skeletal/banebow-bow-attack-3.png"
+            image="units/undead-skeletal/banebow-bow.png:65"
         [/frame]
-        [frame]
-            begin=-130
-            end=0
-            image="units/undead-skeletal/banebow-bow-attack-4.png"
-        [/frame]
-        [frame]
-            begin=0
-            end=65
-            image="units/undead-skeletal/banebow-bow.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -120,40 +101,30 @@
         start_time=-275
 
         [frame]
-            duration=50
-            image="units/undead-skeletal/banebow-melee-defend-1.png"
+            image="units/undead-skeletal/banebow-melee-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/undead-skeletal/banebow-melee-attack-1.png"
+            image="units/undead-skeletal/banebow-melee-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/undead-skeletal/banebow-melee-attack-2.png"
+                image="units/undead-skeletal/banebow-melee-attack-2.png:100"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/undead-skeletal/banebow-melee-attack-2.png"
+                image="units/undead-skeletal/banebow-melee-attack-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/undead-skeletal/banebow-melee-attack-3.png"
+            image="units/undead-skeletal/banebow-melee-attack-[3,4].png:[100]"
         [/frame]
         [frame]
-            duration=100
-            image="units/undead-skeletal/banebow-melee-attack-4.png"
+            image="units/undead-skeletal/banebow-melee-defend-1.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/undead-skeletal/banebow-melee-defend-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Assassin.cfg
===================================================================
--- data/core/units/orcs/Assassin.cfg	(revision 56322)
+++ data/core/units/orcs/Assassin.cfg	(working copy)
@@ -61,123 +61,31 @@
     [death]
         start_time=0
         [frame]
-            duration=120
-            image="units/orcs/assassin-die-1.png"
+            image="units/orcs/assassin-die-[1~10].png:[120,100*4,80*2,100*3]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-die-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-die-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-die-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-die-5.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/orcs/assassin-die-6.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/orcs/assassin-die-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-die-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-die-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-die-10.png"
-        [/frame]
     [/death]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/orcs/assassin-idle-1.png"
+            image="units/orcs/assassin-idle-[1~8,7,8,3,2,9].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-idle-9.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=throwing knives
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/dagger-n.png"
             image_diagonal="projectiles/dagger-ne.png"
         [/missile_frame]
         {SOUND:HIT_AND_MISS throwing-knife.ogg throwing-knife-miss.ogg -200}
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/orcs/assassin-ranged1.png"
+            image="units/orcs/assassin-ranged[1,2].png:100"
         [/frame]
-        [frame]
-            begin=-100
-            end=0
-            image="units/orcs/assassin-ranged2.png"
-        [/frame]
         {SOUND:POISON}
     [/attack_anim]
     [attack_anim]
@@ -186,29 +94,11 @@
         [/filter_attack]
         start_time=-320
         [frame]
-            duration=80
-            image="units/orcs/assassin-attack-1.png"
+            image="units/orcs/assassin-attack-[1,2].png:80"
         [/frame]
-        [frame]
-            duration=80
-            image="units/orcs/assassin-attack-2.png"
-        [/frame]
         {SOUND:HIT_AND_MISS dagger-swish.wav {SOUND_LIST:MISS} -100}
         [frame]
-            duration=80
-            image="units/orcs/assassin-attack-3.png"
+            image="units/orcs/assassin-attack-[3~6].png:[80*2,100*2]"
         [/frame]
-        [frame]
-            duration=80
-            image="units/orcs/assassin-attack-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-attack-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/assassin-attack-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Warrior.cfg
===================================================================
--- data/core/units/orcs/Warrior.cfg	(revision 56322)
+++ data/core/units/orcs/Warrior.cfg	(working copy)
@@ -46,52 +46,33 @@
         offset=0.0~0.15:100,0.15~0.35:100,0.35~0.45:75,0.45~0.5:100,0.5:20,0.5~0.4:30,0.4~0.2:75,0.2~0.0:75
         start_time=-300
         [frame]
-            duration=50
-            image="units/orcs/warrior.png"
+            image="units/orcs/warrior.png:50"
         [/frame]
         [frame]
-            duration=50
-            image="units/orcs/warrior-defend-1.png"
+            image="units/orcs/warrior-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/warrior-attack-1.png"
+            image="units/orcs/warrior-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/orcs/warrior-attack-2.png"
+                image="units/orcs/warrior-attack-2.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/orcs/warrior-attack-2.png"
+                image="units/orcs/warrior-attack-2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/orcs/warrior-attack-3.png"
+            image="units/orcs/warrior-attack-[3~5].png:[100,50,75]"
         [/frame]
         [frame]
-            duration=20
-            image="units/orcs/warrior-attack-4.png"
+            image="units/orcs/warrior.png:75"
         [/frame]
-        [frame]
-            duration=30
-            image="units/orcs/warrior-attack-4.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/warrior-attack-5.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/warrior.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Ruler.cfg
===================================================================
--- data/core/units/orcs/Ruler.cfg	(revision 56322)
+++ data/core/units/orcs/Ruler.cfg	(working copy)
@@ -57,34 +57,29 @@
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-300
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-150
-                image="units/orcs/ruler-ranged-attack-1.png"
+                image="units/orcs/ruler-ranged-attack-1.png:150"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-150
-                image="units/orcs/ruler-ranged-attack-1.png"
+                image="units/orcs/ruler-ranged-attack-1.png:150"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=0
-            image="units/orcs/ruler-ranged-attack-2.png"
+            image="units/orcs/ruler-ranged-attack-2.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -95,48 +90,30 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/orcs/ruler.png"
+            image="units/orcs/ruler.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/ruler-attack-sword-1.png"
+            image="units/orcs/ruler-attack-sword-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/ruler-attack-sword-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/orcs/ruler-attack-sword-3.png"
+                image="units/orcs/ruler-attack-sword-3.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/orcs/ruler-attack-sword-3.png"
+                image="units/orcs/ruler-attack-sword-3.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/orcs/ruler-attack-sword-4.png"
+            image="units/orcs/ruler-attack-sword-[4~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/ruler-attack-sword-5.png"
+            image="units/orcs/ruler.png:50"
         [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/ruler-attack-sword-6.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/orcs/ruler.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Leader.cfg
===================================================================
--- data/core/units/orcs/Leader.cfg	(revision 56322)
+++ data/core/units/orcs/Leader.cfg	(working copy)
@@ -58,34 +58,28 @@
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-150
-                image="units/orcs/leader-ranged-attack-1.png"
+                image="units/orcs/leader-ranged-attack-1.png:150"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-150
-                image="units/orcs/leader-ranged-attack-1.png"
+                image="units/orcs/leader-ranged-attack-1.png:150"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=0
-            image="units/orcs/leader-ranged-attack-2.png"
+            image="units/orcs/leader-ranged-attack-2.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -95,52 +89,33 @@
         offset=0.0~0.15:100,0.15~0.35:100,0.35~0.45:75,0.45~0.5:100,0.5:20,0.5~0.4:30,0.4~0.2:75,0.2~0.0:75
         start_time=-300
         [frame]
-            duration=50
-            image="units/orcs/leader.png"
+            image="units/orcs/leader.png:50"
         [/frame]
         [frame]
-            duration=50
-            image="units/orcs/leader-defend-1.png"
+            image="units/orcs/leader-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/leader-attack-1.png"
+            image="units/orcs/leader-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/orcs/leader-attack-2.png"
+                image="units/orcs/leader-attack-2.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/orcs/leader-attack-2.png"
+                image="units/orcs/leader-attack-2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/orcs/leader-attack-3.png"
+            image="units/orcs/leader-attack-[3~5].png:[100,50,75]"
         [/frame]
         [frame]
-            duration=20
-            image="units/orcs/leader-attack-4.png"
+            image="units/orcs/leader.png:75"
         [/frame]
-        [frame]
-            duration=30
-            image="units/orcs/leader-attack-4.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/leader-attack-5.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/leader.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Crossbowman.cfg
===================================================================
--- data/core/units/orcs/Crossbowman.cfg	(revision 56322)
+++ data/core/units/orcs/Crossbowman.cfg	(working copy)
@@ -64,12 +64,13 @@
             name=crossbow
             type=fire
         [/filter_attack]
+        missile_start_time=-150
+        start_time=-300
         [if]
             hits=yes
 
             [missile_frame]
-                begin=-150
-                end=0
+                duration=150
                 image="projectiles/missile-fire-n.png"
                 image_diagonal="projectiles/missile-fire-ne.png"
                 offset=0~0.8
@@ -78,9 +79,7 @@
             {FIRE_BURST_SMALL}
 
             [frame]
-                begin=-300
-                end=-100
-                image="units/orcs/xbowman-ranged-1.png"
+                image="units/orcs/xbowman-ranged-1.png:200"
                 sound=crossbow-fire.ogg
             [/frame]
         [/if]
@@ -88,23 +87,18 @@
             hits=no
 
             [missile_frame]
-                begin=-150
-                end=0
+                duration=150
                 image="projectiles/missile-fire-n.png"
                 image_diagonal="projectiles/missile-fire-ne.png"
             [/missile_frame]
 
             [frame]
-                begin=-300
-                end=-100
-                image="units/orcs/xbowman-ranged-1.png"
+                image="units/orcs/xbowman-ranged-1.png:200"
                 sound=crossbow-fire-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=0
-            image="units/orcs/xbowman-ranged-2.png"
+            image="units/orcs/xbowman-ranged-2.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -112,34 +106,29 @@
             name=crossbow
             type=pierce
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-300
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-150
-                image="units/orcs/xbowman-ranged-1.png"
+                image="units/orcs/xbowman-ranged-1.png:150"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-150
-                image="units/orcs/xbowman-ranged-1.png"
+                image="units/orcs/xbowman-ranged-1.png:150"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=0
-            image="units/orcs/xbowman-ranged-2.png"
+            image="units/orcs/xbowman-ranged-2.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -150,40 +139,27 @@
         offset=0.0~0.3,0.3~0.55,0.55~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=100
-            image="units/orcs/xbowman-melee.png"
+            image="units/orcs/xbowman-melee.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                duration=100
-                image="units/orcs/xbowman-melee-attack-1.png"
+                image="units/orcs/xbowman-melee-attack-1.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                duration=100
-                image="units/orcs/xbowman-melee-attack-1.png"
+                image="units/orcs/xbowman-melee-attack-1.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/orcs/xbowman-melee-attack-2.png"
+            image="units/orcs/xbowman-melee-attack-[2~4].png:[100*2,150]"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/xbowman-melee-attack-3.png"
+            image="units/orcs/xbowman-melee.png:100"
         [/frame]
-        [frame]
-            duration=150
-            image="units/orcs/xbowman-melee-attack-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/xbowman-melee.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Slurbow.cfg
===================================================================
--- data/core/units/orcs/Slurbow.cfg	(revision 56322)
+++ data/core/units/orcs/Slurbow.cfg	(working copy)
@@ -68,12 +68,13 @@
             name=crossbow
             type=fire
         [/filter_attack]
+        missile_start_time=-150
+        start_time=-350
         [if]
             hits=yes
 
             [missile_frame]
-                begin=-150
-                end=0
+                duration=150
                 image="projectiles/missile-fire-n.png"
                 image_diagonal="projectiles/missile-fire-ne.png"
                 offset=0~0.8
@@ -82,47 +83,34 @@
             {FIRE_BURST_SMALL}
 
             [frame]
-                begin=-350
-                end=-300
-                image="units/orcs/slurbow-ranged.png"
+                image="units/orcs/slurbow-ranged.png:50"
             [/frame]
             [frame]
-                begin=-300
-                end=-200
-                image="units/orcs/slurbow-ranged-1.png"
+                image="units/orcs/slurbow-ranged-1.png:100"
                 sound=crossbow-fire.ogg
             [/frame]
             [frame]
-                begin=-200
-                end=50
-                image="units/orcs/slurbow-ranged-2.png"
+                image="units/orcs/slurbow-ranged-2.png:250"
             [/frame]
         [/if]
         [else]
             hits=no
 
             [missile_frame]
-                begin=-150
-                end=0
+                duration=150
                 image="projectiles/missile-fire-n.png"
                 image_diagonal="projectiles/missile-fire-ne.png"
             [/missile_frame]
 
             [frame]
-                begin=-350
-                end=-300
-                image="units/orcs/slurbow-ranged.png"
+                image="units/orcs/slurbow-ranged.png:50"
             [/frame]
             [frame]
-                begin=-300
-                end=-200
-                image="units/orcs/slurbow-ranged-1.png"
+                image="units/orcs/slurbow-ranged-1.png:100"
                 sound=crossbow-fire-miss.ogg
             [/frame]
             [frame]
-                begin=-200
-                end=50
-                image="units/orcs/slurbow-ranged-2.png"
+                image="units/orcs/slurbow-ranged-2.png:250"
             [/frame]
         [/else]
     [/attack_anim]
@@ -131,87 +119,61 @@
             name=crossbow
             type=pierce
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/bullet.png"
             image_diagonal="projectiles/bullet.png"
         [/missile_frame]
+        start_time=-350
         [frame]
-            begin=-350
-            end=-300
-            image="units/orcs/slurbow-ranged-1.png"
+            image="units/orcs/slurbow-ranged-1.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-200
-                image="units/orcs/slurbow-ranged-1.png"
+                image="units/orcs/slurbow-ranged-1.png:100"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-200
-                image="units/orcs/slurbow-ranged-1.png"
+                image="units/orcs/slurbow-ranged-1.png:100"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-200
-            end=50
-            image="units/orcs/slurbow-ranged-2.png"
+            image="units/orcs/slurbow-ranged-2.png:250"
         [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
             name=short sword
         [/filter_attack]
+        start_time=-250
         [frame]
-            begin=-250
-            end=-175
-            image="units/orcs/slurbow-melee.png"
+            image="units/orcs/slurbow-melee.png:75"
         [/frame]
         [frame]
-            begin=-175
-            end=-100
-            image="units/orcs/slurbow-melee-attack-1.png"
+            image="units/orcs/slurbow-melee-attack-1.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                begin=-100
-                end=-25
-                image="units/orcs/slurbow-melee-attack-2.png"
+                image="units/orcs/slurbow-melee-attack-2.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-100
-                end=-25
-                image="units/orcs/slurbow-melee-attack-2.png"
+                image="units/orcs/slurbow-melee-attack-2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            begin=-25
-            end=50
-            image="units/orcs/slurbow-melee-attack-3.png"
+            image="units/orcs/slurbow-melee-attack-[3,4,2].png:75"
         [/frame]
-        [frame]
-            begin=50
-            end=125
-            image="units/orcs/slurbow-melee-attack-4.png"
-        [/frame]
-        [frame]
-            begin=125
-            end=200
-            image="units/orcs/slurbow-melee-defend-2.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Slayer.cfg
===================================================================
--- data/core/units/orcs/Slayer.cfg	(revision 56322)
+++ data/core/units/orcs/Slayer.cfg	(working copy)
@@ -60,34 +60,29 @@
         [filter_attack]
             name=throwing knives
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/dagger-n.png"
             image_diagonal="projectiles/dagger-ne.png"
         [/missile_frame]
+        start_time=-150
         [if]
             hits=yes
             [frame]
-                begin=-150
-                end=-100
-                image="units/orcs/slayer-ranged1.png"
+                image="units/orcs/slayer-ranged1.png:50"
                 sound=throwing-knife.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-150
-                end=-100
-                image="units/orcs/slayer-ranged1.png"
+                image="units/orcs/slayer-ranged1.png:50"
                 sound=throwing-knife-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-100
-            end=0
-            image="units/orcs/slayer-ranged2.png"
+            image="units/orcs/slayer-ranged2.png:100"
         [/frame]
         {SOUND:POISON}
     [/attack_anim]
@@ -98,72 +93,24 @@
         start_time=-250
         offset=0.0~0.3:200,0.3~0.7:150,0.7~0.5:150,0.5~0.2:275,0.2~0.0:125
         [frame]
-            duration=75
-            image="units/orcs/slayer-attack-1.png"
+            image="units/orcs/slayer-attack-[1~3].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/slayer-attack-2.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/slayer-attack-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/orcs/slayer-attack-4.png"
+                image="units/orcs/slayer-attack-4.png:75"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/orcs/slayer-attack-4.png"
+                image="units/orcs/slayer-attack-4.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=50
-            image="units/orcs/slayer-attack-5.png"
+            image="units/orcs/slayer-attack-[5~14].png:[50*2,75*5,65,55,50]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/orcs/slayer-attack-6.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/slayer-attack-7.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/slayer-attack-8.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/slayer-attack-9.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/slayer-attack-10.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/slayer-attack-11.png"
-        [/frame]
-        [frame]
-            duration=65
-            image="units/orcs/slayer-attack-12.png"
-        [/frame]
-        [frame]
-            duration=55
-            image="units/orcs/slayer-attack-13.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/orcs/slayer-attack-14.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Grunt.cfg
===================================================================
--- data/core/units/orcs/Grunt.cfg	(revision 56322)
+++ data/core/units/orcs/Grunt.cfg	(working copy)
@@ -35,37 +35,8 @@
     [death]
         start_time=0
         [frame]
-            duration=120
-            image="units/orcs/grunt-die-1.png"
+            image="units/orcs/grunt-die-[1~8].png:120"
         [/frame]
-        [frame]
-            duration=120
-            image="units/orcs/grunt-die-2.png"
-        [/frame]
-        [frame]
-            duration=120
-            image="units/orcs/grunt-die-3.png"
-        [/frame]
-        [frame]
-            duration=120
-            image="units/orcs/grunt-die-4.png"
-        [/frame]
-        [frame]
-            duration=120
-            image="units/orcs/grunt-die-5.png"
-        [/frame]
-        [frame]
-            duration=120
-            image="units/orcs/grunt-die-6.png"
-        [/frame]
-        [frame]
-            duration=120
-            image="units/orcs/grunt-die-7.png"
-        [/frame]
-        [frame]
-            duration=120
-            image="units/orcs/grunt-die-8.png"
-        [/frame]
     [/death]
     [attack]
         name=sword
@@ -83,52 +54,33 @@
         offset=0.0~0.15:100,0.15~0.35:100,0.35~0.45:75,0.45~0.5:100,0.5:20,0.5~0.4:30,0.4~0.2:75,0.2~0.0:75
         start_time=-300
         [frame]
-            duration=50
-            image="units/orcs/grunt.png"
+            image="units/orcs/grunt.png:50"
         [/frame]
         [frame]
-            duration=50
-            image="units/orcs/grunt-defend-1.png"
+            image="units/orcs/grunt-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/grunt-attack-1.png"
+            image="units/orcs/grunt-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/orcs/grunt-attack-2.png"
+                image="units/orcs/grunt-attack-2.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/orcs/grunt-attack-2.png"
+                image="units/orcs/grunt-attack-2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/orcs/grunt-attack-3.png"
+            image="units/orcs/grunt-attack-[3~5].png:[100,50,75]"
         [/frame]
         [frame]
-            duration=20
-            image="units/orcs/grunt-attack-4.png"
+            image="units/orcs/grunt.png:75"
         [/frame]
-        [frame]
-            duration=30
-            image="units/orcs/grunt-attack-4.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/grunt-attack-5.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/grunt.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Sovereign.cfg
===================================================================
--- data/core/units/orcs/Sovereign.cfg	(revision 56322)
+++ data/core/units/orcs/Sovereign.cfg	(working copy)
@@ -58,34 +58,29 @@
         [filter_attack]
             name=crossbow
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
+        start_time=-300
         [if]
             hits=yes
             [frame]
-                begin=-300
-                end=-150
-                image="units/orcs/sovereign-ranged-attack-1.png"
+                image="units/orcs/sovereign-ranged-attack-1.png:150"
                 sound=crossbow.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                begin=-300
-                end=-150
-                image="units/orcs/sovereign-ranged-attack-1.png"
+                image="units/orcs/sovereign-ranged-attack-1.png:150"
                 sound=crossbow-miss.ogg
             [/frame]
         [/else]
         [frame]
-            begin=-150
-            end=0
-            image="units/orcs/sovereign-ranged-attack-2.png"
+            image="units/orcs/sovereign-ranged-attack-2.png:150"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -95,52 +90,33 @@
         offset=0.0~0.15:100,0.15~0.35:100,0.35~0.45:75,0.45~0.5:100,0.5:20,0.5~0.4:30,0.4~0.2:75,0.2~0.0:75
         start_time=-300
         [frame]
-            duration=50
-            image="units/orcs/sovereign.png"
+            image="units/orcs/sovereign.png:50"
         [/frame]
         [frame]
-            duration=50
-            image="units/orcs/sovereign-defend-1.png"
+            image="units/orcs/sovereign-defend-1.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/sovereign-attack-1.png"
+            image="units/orcs/sovereign-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/orcs/sovereign-attack-2.png"
+                image="units/orcs/sovereign-attack-2.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/orcs/sovereign-attack-2.png"
+                image="units/orcs/sovereign-attack-2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/orcs/sovereign-attack-3.png"
+            image="units/orcs/sovereign-attack-[3~5].png:[100,50,75]"
         [/frame]
         [frame]
-            duration=20
-            image="units/orcs/sovereign-attack-4.png"
+            image="units/orcs/sovereign.png:75"
         [/frame]
-        [frame]
-            duration=30
-            image="units/orcs/sovereign-attack-4.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/sovereign-attack-5.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/sovereign.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Archer.cfg
===================================================================
--- data/core/units/orcs/Archer.cfg	(revision 56322)
+++ data/core/units/orcs/Archer.cfg	(working copy)
@@ -64,66 +64,10 @@
     [/attack]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
+        start_time=0
         [frame]
-            begin=0
-            end=100
-            image="units/orcs/archer-idle-1.png"
+            image="units/orcs/archer-idle-[1~3,6,4,3,6,4~6,2,1].png:[100*3,200,100*2,200,100*2,200,100*2]"
         [/frame]
-        [frame]
-            begin=100
-            end=200
-            image="units/orcs/archer-idle-2.png"
-        [/frame]
-        [frame]
-            begin=200
-            end=300
-            image="units/orcs/archer-idle-3.png"
-        [/frame]
-        [frame]
-            begin=300
-            end=500
-            image="units/orcs/archer-idle-6.png"
-        [/frame]
-        [frame]
-            begin=500
-            end=600
-            image="units/orcs/archer-idle-4.png"
-        [/frame]
-        [frame]
-            begin=600
-            end=700
-            image="units/orcs/archer-idle-3.png"
-        [/frame]
-        [frame]
-            begin=700
-            end=900
-            image="units/orcs/archer-idle-6.png"
-        [/frame]
-        [frame]
-            begin=900
-            end=1000
-            image="units/orcs/archer-idle-4.png"
-        [/frame]
-        [frame]
-            begin=1000
-            end=1100
-            image="units/orcs/archer-idle-5.png"
-        [/frame]
-        [frame]
-            begin=1100
-            end=1300
-            image="units/orcs/archer-idle-6.png"
-        [/frame]
-        [frame]
-            begin=1300
-            end=1400
-            image="units/orcs/archer-idle-2.png"
-        [/frame]
-        [frame]
-            begin=1400
-            end=1500
-            image="units/orcs/archer-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
@@ -132,30 +76,23 @@
         [/filter_attack]
         start_time=-445
         [frame]
-            duration=65
-            image="units/orcs/archer-bow.png"
+            image="units/orcs/archer-bow.png:65"
         [/frame]
         [frame]
-            duration=75
-            image="units/orcs/archer-bow-attack-1.png"
+            image="units/orcs/archer-bow-attack-[1,2].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/archer-bow-attack-2.png"
-        [/frame]
+        missile_start_time=-150
         [if]
             hits=no
 
             [missile_frame]
-                begin=-150
-                end=0
+                duration=150
                 image="projectiles/missile-fire-n.png"
                 image_diagonal="projectiles/missile-fire-ne.png"
             [/missile_frame]
 
             [frame]
-                duration=100
-                image="units/orcs/archer-bow-attack-3.png"
+                image="units/orcs/archer-bow-attack-3.png:100"
                 sound=bow-puny-fire-miss.ogg
             [/frame]
         [/if]
@@ -163,8 +100,7 @@
             hits=yes
 
             [missile_frame]
-                begin=-150
-                end=0
+                duration=150
                 image="projectiles/missile-fire-n.png"
                 image_diagonal="projectiles/missile-fire-ne.png"
                 offset=0~0.8
@@ -173,19 +109,13 @@
             {FIRE_BURST_SMALL}
 
             [frame]
-                duration=100
-                image="units/orcs/archer-bow-attack-3.png"
+                image="units/orcs/archer-bow-attack-3.png:100"
                 sound=bow-puny-fire.ogg
             [/frame]
         [/else]
         [frame]
-            duration=130
-            image="units/orcs/archer-bow-attack-4.png"
+            image="units/orcs/archer-bow-attack-[4,1].png:[130,65]"
         [/frame]
-        [frame]
-            duration=65
-            image="units/orcs/archer-bow-attack-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -193,48 +123,35 @@
             type=pierce
         [/filter_attack]
         start_time=-445
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
         [frame]
-            duration=65
-            image="units/orcs/archer-bow.png"
+            image="units/orcs/archer-bow.png:65"
         [/frame]
         [frame]
-            duration=75
-            image="units/orcs/archer-bow-attack-1.png"
+            image="units/orcs/archer-bow-attack-[1,2].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/archer-bow-attack-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                duration=100
-                image="units/orcs/archer-bow-attack-3.png"
+                image="units/orcs/archer-bow-attack-3.png:100"
                 sound=bow-puny-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                duration=100
-                image="units/orcs/archer-bow-attack-3.png"
+                image="units/orcs/archer-bow-attack-3.png:100"
                 sound=bow-puny.ogg
             [/frame]
         [/else]
         [frame]
-            duration=130
-            image="units/orcs/archer-bow-attack-4.png"
+            image="units/orcs/archer-bow-attack-[4,1].png:[130,65]"
         [/frame]
-        [frame]
-            duration=65
-            image="units/orcs/archer-bow-attack-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -244,48 +161,30 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/orcs/archer-melee.png"
+            image="units/orcs/archer-melee.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/archer-melee-1.png"
+            image="units/orcs/archer-melee-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/archer-melee-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/orcs/archer-melee-3.png"
+                image="units/orcs/archer-melee-3.png:75"
                 sound=dagger-swish.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/orcs/archer-melee-3.png"
+                image="units/orcs/archer-melee-3.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/orcs/archer-melee-4.png"
+            image="units/orcs/archer-melee-[4~6].png:[100*2,75]"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/archer-melee-5.png"
+            image="units/orcs/archer-melee.png:50"
         [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/archer-melee-6.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/orcs/archer-melee.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/orcs/Warlord.cfg
===================================================================
--- data/core/units/orcs/Warlord.cfg	(revision 56322)
+++ data/core/units/orcs/Warlord.cfg	(working copy)
@@ -55,48 +55,35 @@
             name=bow
         [/filter_attack]
         start_time=-445
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             image="projectiles/missile-n.png"
             image_diagonal="projectiles/missile-ne.png"
         [/missile_frame]
         [frame]
-            duration=65
-            image="units/orcs/warlord-bow.png"
+            image="units/orcs/warlord-bow.png:65"
         [/frame]
         [frame]
-            duration=75
-            image="units/orcs/warlord-bow-attack-1.png"
+            image="units/orcs/warlord-bow-attack-[1,2].png:75"
         [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/warlord-bow-attack-2.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                duration=100
-                image="units/orcs/warlord-bow-attack-3.png"
+                image="units/orcs/warlord-bow-attack-3.png:100"
                 sound=bow-miss.ogg
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                duration=100
-                image="units/orcs/warlord-bow-attack-3.png"
+                image="units/orcs/warlord-bow-attack-3.png:100"
                 sound=bow.ogg
             [/frame]
         [/else]
         [frame]
-            duration=130
-            image="units/orcs/warlord-bow-attack-4.png"
+            image="units/orcs/warlord-bow-attack-[4,1].png:[130,65]"
         [/frame]
-        [frame]
-            duration=65
-            image="units/orcs/warlord-bow-attack-1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -106,48 +93,30 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/orcs/warlord.png"
+            image="units/orcs/warlord.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/warlord-attack-sword-1.png"
+            image="units/orcs/warlord-attack-sword-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/orcs/warlord-attack-sword-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/orcs/warlord-attack-sword-3.png"
+                image="units/orcs/warlord-attack-sword-3.png:75"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/orcs/warlord-attack-sword-3.png"
+                image="units/orcs/warlord-attack-sword-3.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/orcs/warlord-attack-sword-4.png"
+            image="units/orcs/warlord-attack-sword-[4~6].png:[100*2,75]"
         [/frame]
         [frame]
-            duration=100
-            image="units/orcs/warlord-attack-sword-5.png"
+            image="units/orcs/warlord.png:50"
         [/frame]
-        [frame]
-            duration=75
-            image="units/orcs/warlord-attack-sword-6.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/orcs/warlord.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Warden.cfg
===================================================================
--- data/core/units/drakes/Warden.cfg	(revision 56322)
+++ data/core/units/drakes/Warden.cfg	(working copy)
@@ -66,53 +66,31 @@
         offset=0.0~0.1,0.1~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/drakes/warden.png"
+            image="units/drakes/warden.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/warden-pierce-se-1.png"
+            image="units/drakes/warden-pierce-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/warden-pierce-se-2.png"
+                image="units/drakes/warden-pierce-se-2.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/warden-pierce-se-2.png"
+                image="units/drakes/warden-pierce-se-2.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/warden-pierce-s-3.png"
+            image="units/drakes/warden-pierce-s-[3~7].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/warden-pierce-s-4.png"
+            image="units/drakes/warden.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-pierce-s-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-pierce-s-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-pierce-s-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -123,53 +101,31 @@
         offset=0.0~0.1,0.1~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/drakes/warden.png"
+            image="units/drakes/warden.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/warden-pierce-se-1.png"
+            image="units/drakes/warden-pierce-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/warden-pierce-se-2.png"
+                image="units/drakes/warden-pierce-se-2.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/warden-pierce-se-2.png"
+                image="units/drakes/warden-pierce-se-2.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/warden-pierce-se-3.png"
+            image="units/drakes/warden-pierce-se-[3~7].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/warden-pierce-se-4.png"
+            image="units/drakes/warden.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-pierce-se-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-pierce-se-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-pierce-se-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -180,16 +136,14 @@
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/warden.png"
+                image="units/drakes/warden.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/warden.png"
+                image="units/drakes/warden.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
@@ -204,49 +158,31 @@
         offset=0.0~0.1,0.1~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/drakes/warden.png"
+            image="units/drakes/warden.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/warden-blade-se-1.png"
+            image="units/drakes/warden-blade-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/warden-blade-se-2.png"
+                image="units/drakes/warden-blade-se-2.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/warden-blade-se-2.png"
+                image="units/drakes/warden-blade-se-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/warden-blade-se-3.png"
+            image="units/drakes/warden-blade-[se-3,s-4,s-5,s-6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/warden-blade-s-4.png"
+            image="units/drakes/warden.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-blade-s-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-blade-s-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -257,49 +193,31 @@
         offset=0.0~0.1,0.1~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/drakes/warden.png"
+            image="units/drakes/warden.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/warden-blade-se-1.png"
+            image="units/drakes/warden-blade-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/warden-blade-se-2.png"
+                image="units/drakes/warden-blade-se-2.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/warden-blade-se-2.png"
+                image="units/drakes/warden-blade-se-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/warden-blade-se-3.png"
+            image="units/drakes/warden-blade-se-[3~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/warden-blade-se-4.png"
+            image="units/drakes/warden.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-blade-se-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden-blade-se-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warden.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -310,16 +228,14 @@
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/warden.png"
+                image="units/drakes/warden.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/warden.png"
+                image="units/drakes/warden.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
Index: data/core/units/drakes/Clasher.cfg
===================================================================
--- data/core/units/drakes/Clasher.cfg	(revision 56322)
+++ data/core/units/drakes/Clasher.cfg	(working copy)
@@ -73,41 +73,25 @@
         offset=0.0~0.1:200,0.1~0.4:150,0.4~0.0:150
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/clasher-spear-se-1.png"
+            image="units/drakes/clasher-spear-[se-1,s-2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-spear-s-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/clasher-spear-s-3.png"
+                image="units/drakes/clasher-spear-s-3.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/clasher-spear-s-3.png"
+                image="units/drakes/clasher-spear-s-3.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/clasher-spear-s-4.png"
+            image="units/drakes/clasher-spear-s-[4~6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-spear-s-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-spear-s-6.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -117,41 +101,25 @@
         offset=0.0~0.0:200,0.0~0.2:150,0.2~0.0:150
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/clasher-spear-se-1.png"
+            image="units/drakes/clasher-spear-se-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-spear-se-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/clasher-spear-se-3.png"
+                image="units/drakes/clasher-spear-se-3.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/clasher-spear-se-3.png"
+                image="units/drakes/clasher-spear-se-3.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/clasher-spear-se-4.png"
+            image="units/drakes/clasher-spear-se-[4,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-spear-se-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-spear-se-6.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -160,41 +128,25 @@
         direction=ne,n,nw
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/clasher.png"
+            image="units/drakes/clasher.png:200"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/clasher.png"
+                image="units/drakes/clasher.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/clasher.png"
+                image="units/drakes/clasher.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/clasher.png"
+            image="units/drakes/clasher.png:300"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -203,48 +155,30 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-300
         [frame]
-            duration=25
-            image="units/drakes/clasher-blade.png"
+            image="units/drakes/clasher-blade.png:25"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/clasher-blade-1.png"
+            image="units/drakes/clasher-blade-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-blade-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/clasher-blade-3.png"
+                image="units/drakes/clasher-blade-3.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/clasher-blade-3.png"
+                image="units/drakes/clasher-blade-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/clasher-blade-4.png"
+            image="units/drakes/clasher-blade-[4~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/clasher-blade-5.png"
+            image="units/drakes/clasher-blade.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-blade-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/clasher-blade.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Blademaster.cfg
===================================================================
--- data/core/units/drakes/Blademaster.cfg	(revision 56322)
+++ data/core/units/drakes/Blademaster.cfg	(working copy)
@@ -65,40 +65,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-400
         [frame]
-            duration=100
-            image="units/drakes/blademaster-melee-1.png"
+            image="units/drakes/blademaster-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/blademaster-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/blademaster-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/blademaster-melee-4.png"
+                image="units/drakes/blademaster-melee-4.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/blademaster-melee-4.png"
+                image="units/drakes/blademaster-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/blademaster-melee-5.png"
+            image="units/drakes/blademaster-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/blademaster-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Fighter.cfg
===================================================================
--- data/core/units/drakes/Fighter.cfg	(revision 56322)
+++ data/core/units/drakes/Fighter.cfg	(working copy)
@@ -66,42 +66,26 @@
             image="units/drakes/fighter.png"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/fighter-melee-1.png"
+            image="units/drakes/fighter-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/fighter-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/fighter-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/fighter-melee-4.png"
+                image="units/drakes/fighter-melee-4.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/fighter-melee-4.png"
+                image="units/drakes/fighter-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/fighter-melee-5.png"
+            image="units/drakes/fighter-melee-[5,6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/fighter-melee-6.png"
-        [/frame]
-        [frame]
             image="units/drakes/fighter.png"
         [/frame]
     [/attack_anim]
Index: data/core/units/drakes/Arbiter.cfg
===================================================================
--- data/core/units/drakes/Arbiter.cfg	(revision 56322)
+++ data/core/units/drakes/Arbiter.cfg	(working copy)
@@ -65,53 +65,31 @@
         offset=0.0~0.1,0.1~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/drakes/arbiter.png"
+            image="units/drakes/arbiter.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-se-1.png"
+            image="units/drakes/arbiter-pierce-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/arbiter-pierce-se-2.png"
+                image="units/drakes/arbiter-pierce-se-2.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/arbiter-pierce-se-2.png"
+                image="units/drakes/arbiter-pierce-se-2.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-s-3.png"
+            image="units/drakes/arbiter-pierce-s-[3~7].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-s-4.png"
+            image="units/drakes/arbiter.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-s-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-s-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-s-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -122,53 +100,31 @@
         offset=0.0~0.1,0.1~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/drakes/arbiter.png"
+            image="units/drakes/arbiter.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-se-1.png"
+            image="units/drakes/arbiter-pierce-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/arbiter-pierce-se-2.png"
+                image="units/drakes/arbiter-pierce-se-2.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/arbiter-pierce-se-2.png"
+                image="units/drakes/arbiter-pierce-se-2.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-se-3.png"
+            image="units/drakes/arbiter-pierce-se-[3~7].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-se-4.png"
+            image="units/drakes/arbiter.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-se-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-se-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-pierce-se-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -179,16 +135,14 @@
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/arbiter.png"
+                image="units/drakes/arbiter.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/arbiter.png"
+                image="units/drakes/arbiter.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
@@ -203,49 +157,31 @@
         offset=0.0~0.1,0.1~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/drakes/arbiter.png"
+            image="units/drakes/arbiter.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-se-1.png"
+            image="units/drakes/arbiter-blade-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/arbiter-blade-se-2.png"
+                image="units/drakes/arbiter-blade-se-2.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/arbiter-blade-se-2.png"
+                image="units/drakes/arbiter-blade-se-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-se-3.png"
+            image="units/drakes/arbiter-blade-[se-3,s-4,s-5,s-6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-s-4.png"
+            image="units/drakes/arbiter.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-s-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-s-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -256,49 +192,31 @@
         offset=0.0~0.1,0.1~0.0
         start_time=-300
         [frame]
-            duration=50
-            image="units/drakes/arbiter.png"
+            image="units/drakes/arbiter.png:50"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-se-1.png"
+            image="units/drakes/arbiter-blade-se-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/arbiter-blade-se-2.png"
+                image="units/drakes/arbiter-blade-se-2.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/arbiter-blade-se-2.png"
+                image="units/drakes/arbiter-blade-se-2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-se-3.png"
+            image="units/drakes/arbiter-blade-se-[3~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-se-4.png"
+            image="units/drakes/arbiter.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-se-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter-blade-se-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/arbiter.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -309,16 +227,14 @@
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/arbiter.png"
+                image="units/drakes/arbiter.png:100"
                 sound=axe.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/arbiter.png"
+                image="units/drakes/arbiter.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
Index: data/core/units/drakes/Armageddon.cfg
===================================================================
--- data/core/units/drakes/Armageddon.cfg	(revision 56322)
+++ data/core/units/drakes/Armageddon.cfg	(working copy)
@@ -76,40 +76,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/armageddon-melee-1.png"
+            image="units/drakes/armageddon-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/armageddon-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/armageddon-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/armageddon-melee-4.png"
+                image="units/drakes/armageddon-melee-4.png:100"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/armageddon-melee-4.png"
+                image="units/drakes/armageddon-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/armageddon-melee-5.png"
+            image="units/drakes/armageddon-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/armageddon-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Enforcer.cfg
===================================================================
--- data/core/units/drakes/Enforcer.cfg	(revision 56322)
+++ data/core/units/drakes/Enforcer.cfg	(working copy)
@@ -77,41 +77,25 @@
         offset=0.0~0.1:200,0.1~0.4:150,0.4~0.0:150
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-se-1.png"
+            image="units/drakes/enforcer-spear-[se-1,s-2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-s-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/enforcer-spear-s-3.png"
+                image="units/drakes/enforcer-spear-s-3.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/enforcer-spear-s-3.png"
+                image="units/drakes/enforcer-spear-s-3.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-s-4.png"
+            image="units/drakes/enforcer-spear-s-[4~6].png"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-s-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-s-6.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -121,41 +105,25 @@
         offset=0.0~0.0:200,0.0~0.2:150,0.2~0.0:150
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-se-1.png"
+            image="units/drakes/enforcer-spear-se-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-se-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/enforcer-spear-se-3.png"
+                image="units/drakes/enforcer-spear-se-3.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/enforcer-spear-se-3.png"
+                image="units/drakes/enforcer-spear-se-3.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-se-4.png"
+            image="units/drakes/enforcer-spear-se-[4~6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-se-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-spear-se-6.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -164,49 +132,31 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-300
         [frame]
-            duration=25
-            image="units/drakes/enforcer-blade.png"
+            image="units/drakes/enforcer-blade.png:25"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/enforcer-blade-1.png"
+            image="units/drakes/enforcer-blade-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-blade-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/enforcer-blade-3.png"
+                image="units/drakes/enforcer-blade-3.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/enforcer-blade-3.png"
+                image="units/drakes/enforcer-blade-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/enforcer-blade-4.png"
+            image="units/drakes/enforcer-blade-[4~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/enforcer-blade-5.png"
+            image="units/drakes/enforcer-blade.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-blade-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-blade.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -215,44 +165,30 @@
         offset=0.0~0.1:200,0.1~0.7:200,0.7~0.0:100
         start_time=-300
         [frame]
-            duration=25
-            image="units/drakes/enforcer-blade.png"
+            image="units/drakes/enforcer-blade.png:25"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/enforcer-impact-1.png"
+            image="units/drakes/enforcer-impact-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-impact-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/enforcer-impact-3.png"
+                image="units/drakes/enforcer-impact-3.png:100"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/enforcer-impact-3.png"
+                image="units/drakes/enforcer-impact-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/enforcer-impact-4.png"
+            image="units/drakes/enforcer-impact-[4,5].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/enforcer-impact-5.png"
+            image="units/drakes/enforcer-blade.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/enforcer-blade.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Sky.cfg
===================================================================
--- data/core/units/drakes/Sky.cfg	(revision 56322)
+++ data/core/units/drakes/Sky.cfg	(working copy)
@@ -32,95 +32,27 @@
     [/portrait]
     [recruit_anim]
         [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-1.png"
+            image="units/drakes/sky-takeoff-1.png:100"
             alpha="0~1:300"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-2.png"
+            image="units/drakes/sky-takeoff-[2~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-4.png"
-        [/frame]
     [/recruit_anim]
     [standing_anim]
         start_time=0
         submerge=0.01
         layer=60
         [frame]
-            duration=100
-            image="units/drakes/sky-fly-1.png"
+            image="units/drakes/sky-fly-[1~5,4].png:100,units/drakes/sky-fly-[3,2]-upstroke.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-3-upstroke.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-2-upstroke.png"
-        [/frame]
     [/standing_anim]
     [movement_anim]
         start_time=0
         submerge=0.01
         [frame]
-            duration=100
-            image="units/drakes/sky-fly-1.png"
+            image="units/drakes/sky-fly-[1~5,4].png:100,units/drakes/sky-fly-[3,2]-upstroke.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-3-upstroke.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-fly-2-upstroke.png"
-        [/frame]
     [/movement_anim]
     [attack]
         name=slam
@@ -146,40 +78,14 @@
     [draw_weapon_anim]
         #landing, only do it when we are not already flying
         [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-4.png"
+            image="units/drakes/sky-takeoff-[4~1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-1.png"
-        [/frame]
     [/draw_weapon_anim]
     [sheath_weapon_anim]
         #landing, only do it when we are not already flying
         [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-1.png"
+            image="units/drakes/sky-takeoff-[1~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-takeoff-4.png"
-        [/frame]
     [/sheath_weapon_anim]
     {DRAKE_FIRE_ANIM_S_DIAGONAL sky 35,40}
     {DRAKE_FIRE_ANIM_N_DIAGONAL_CURRENT sky 35,-20}
@@ -192,44 +98,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-400
         [frame]
-            duration=100
-            image="units/drakes/sky-kick-1.png"
+            image="units/drakes/sky-kick-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-kick-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/sky-kick-3.png"
+                image="units/drakes/sky-kick-3.png:100"
                 sound=club.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/sky-kick-3.png"
+                image="units/drakes/sky-kick-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/sky-kick-4.png"
+            image="units/drakes/sky-kick-[4~6,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-kick-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-kick-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/sky-kick-2.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Glider.cfg
===================================================================
--- data/core/units/drakes/Glider.cfg	(revision 56322)
+++ data/core/units/drakes/Glider.cfg	(working copy)
@@ -71,44 +71,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-400
         [frame]
-            duration=100
-            image="units/drakes/glider-kick-1.png"
+            image="units/drakes/glider-kick-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/glider-kick-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/glider-kick-3.png"
+                image="units/drakes/glider-kick-3.png:100"
                 sound=club.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/glider-kick-3.png"
+                image="units/drakes/glider-kick-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/glider-kick-4.png"
+            image="units/drakes/glider-kick-[4~6,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/glider-kick-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/glider-kick-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/glider-kick-2.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Hurricane.cfg
===================================================================
--- data/core/units/drakes/Hurricane.cfg	(revision 56322)
+++ data/core/units/drakes/Hurricane.cfg	(working copy)
@@ -33,95 +33,27 @@
     [/portrait]
     [recruit_anim]
         [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-1.png"
+            image="units/drakes/hurricane-takeoff-1.png:100"
             alpha="0~1:300"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-2.png"
+            image="units/drakes/hurricane-takeoff-[2~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-4.png"
-        [/frame]
     [/recruit_anim]
     [standing_anim]
         start_time=0
         submerge=0.01
         layer=60
         [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-1.png"
+            image="units/drakes/hurricane-fly-[1~5,4].png:100,units/drakes/hurricane-fly-[3,2]-upstroke.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-3-upstroke.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-2-upstroke.png"
-        [/frame]
     [/standing_anim]
     [movement_anim]
         start_time=0
         submerge=0.01
         [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-1.png"
+            image="units/drakes/hurricane-fly-[1~5,4].png:100,units/drakes/hurricane-fly-[3,2]-upstroke.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-3-upstroke.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-fly-2-upstroke.png"
-        [/frame]
     [/movement_anim]
     [attack]
         name=slam
@@ -147,40 +79,14 @@
     [draw_weapon_anim]
         #landing, only do it when we are not already flying
         [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-4.png"
+            image="units/drakes/hurricane-takeoff-[4~1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-1.png"
-        [/frame]
     [/draw_weapon_anim]
     [sheath_weapon_anim]
         #landing, only do it when we are not already flying
         [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-1.png"
+            image="units/drakes/hurricane-takeoff-[1~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-takeoff-4.png"
-        [/frame]
     [/sheath_weapon_anim]
     {DRAKE_FIRE_ANIM_S_DIAGONAL hurricane 35,40}
     {DRAKE_FIRE_ANIM_N_DIAGONAL_CURRENT hurricane 35,-20}
@@ -193,44 +99,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-400
         [frame]
-            duration=100
-            image="units/drakes/hurricane-kick-1.png"
+            image="units/drakes/hurricane-kick-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-kick-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/hurricane-kick-3.png"
+                image="units/drakes/hurricane-kick-3.png:100"
                 sound=club.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/hurricane-kick-3.png"
+                image="units/drakes/hurricane-kick-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/hurricane-kick-4.png"
+            image="units/drakes/hurricane-kick-[4~6,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-kick-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-kick-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/hurricane-kick-2.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Thrasher.cfg
===================================================================
--- data/core/units/drakes/Thrasher.cfg	(revision 56322)
+++ data/core/units/drakes/Thrasher.cfg	(working copy)
@@ -76,41 +76,25 @@
         offset=0.0~0.1:200,0.1~0.4:150,0.4~0.0:150
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-se-1.png"
+            image="units/drakes/thrasher-spear-[se-1,s-2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-s-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/thrasher-spear-s-3.png"
+                image="units/drakes/thrasher-spear-s-3.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/thrasher-spear-s-3.png"
+                image="units/drakes/thrasher-spear-s-3.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-s-4.png"
+            image="units/drakes/thrasher-spear-s-[4~6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-s-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-s-6.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -120,41 +104,25 @@
         offset=0.0~0.0:200,0.0~0.2:150,0.2~0.0:150
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-se-1.png"
+            image="units/drakes/thrasher-spear-se-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-se-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/thrasher-spear-se-3.png"
+                image="units/drakes/thrasher-spear-se-3.png:100"
                 sound=spear.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/thrasher-spear-se-3.png"
+                image="units/drakes/thrasher-spear-se-3.png:100"
                 sound=spear-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-se-4.png"
+            image="units/drakes/thrasher-spear-se-[4~6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-se-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-spear-se-6.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -163,49 +131,31 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-300
         [frame]
-            duration=25
-            image="units/drakes/thrasher-blade.png"
+            image="units/drakes/thrasher-blade.png:25"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/thrasher-blade-1.png"
+            image="units/drakes/thrasher-blade-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-blade-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/thrasher-blade-3.png"
+                image="units/drakes/thrasher-blade-3.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/thrasher-blade-3.png"
+                image="units/drakes/thrasher-blade-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/thrasher-blade-4.png"
+            image="units/drakes/thrasher-blade-[4~6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/thrasher-blade-5.png"
+            image="units/drakes/thrasher-blade.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-blade-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-blade.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -214,44 +164,30 @@
         offset=0.0~0.1:200,0.1~0.7:200,0.7~0.0:100
         start_time=-300
         [frame]
-            duration=25
-            image="units/drakes/thrasher-blade.png"
+            image="units/drakes/thrasher-blade.png:25"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/thrasher-impact-1.png"
+            image="units/drakes/thrasher-impact-[1,2].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-impact-2.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/thrasher-impact-3.png"
+                image="units/drakes/thrasher-impact-3.png:100"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/thrasher-impact-3.png"
+                image="units/drakes/thrasher-impact-3.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/thrasher-impact-4.png"
+            image="units/drakes/thrasher-impact-[4,5].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/thrasher-impact-5.png"
+            image="units/drakes/thrasher-blade.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/thrasher-blade.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Fire.cfg
===================================================================
--- data/core/units/drakes/Fire.cfg	(revision 56322)
+++ data/core/units/drakes/Fire.cfg	(working copy)
@@ -65,40 +65,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/fire-melee-1.png"
+            image="units/drakes/fire-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/fire-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/fire-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/fire-melee-4.png"
+                image="units/drakes/fire-melee-4.png:100"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/fire-melee-4.png"
+                image="units/drakes/fire-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/fire-melee-5.png"
+            image="units/drakes/fire-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/fire-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Warrior.cfg
===================================================================
--- data/core/units/drakes/Warrior.cfg	(revision 56322)
+++ data/core/units/drakes/Warrior.cfg	(working copy)
@@ -62,36 +62,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-400
         [frame]
-            duration=100
-            image="units/drakes/warrior-melee-1.png"
+            image="units/drakes/warrior-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warrior-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/warrior-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/warrior-melee-4.png"
+                image="units/drakes/warrior-melee-4.png:100"
                 sound={SOUND_LIST:SWORD_SWISH}
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/warrior-melee-4.png"
+                image="units/drakes/warrior-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/warrior-melee-5.png"
+            image="units/drakes/warrior-melee-[5,6].png:100"
         [/frame]
         [frame]
             duration=100
Index: data/core/units/drakes/Flare.cfg
===================================================================
--- data/core/units/drakes/Flare.cfg	(revision 56322)
+++ data/core/units/drakes/Flare.cfg	(working copy)
@@ -66,40 +66,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/flare-melee-1.png"
+            image="units/drakes/flare-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/flare-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/flare-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/flare-melee-4.png"
+                image="units/drakes/flare-melee-4.png:100"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/flare-melee-4.png"
+                image="units/drakes/flare-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/flare-melee-5.png"
+            image="units/drakes/flare-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/flare-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Burner.cfg
===================================================================
--- data/core/units/drakes/Burner.cfg	(revision 56322)
+++ data/core/units/drakes/Burner.cfg	(working copy)
@@ -66,42 +66,26 @@
             image="units/drakes/burner.png"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/burner-melee-1.png"
+            image="units/drakes/burner-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/burner-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/burner-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/burner-melee-4.png"
+                image="units/drakes/burner-melee-4.png:100"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/burner-melee-4.png"
+                image="units/drakes/burner-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/burner-melee-5.png"
+            image="units/drakes/burner-melee-[5,6].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/burner-melee-6.png"
-        [/frame]
-        [frame]
             image="units/drakes/burner.png"
         [/frame]
     [/attack_anim]
Index: data/core/units/drakes/Inferno.cfg
===================================================================
--- data/core/units/drakes/Inferno.cfg	(revision 56322)
+++ data/core/units/drakes/Inferno.cfg	(working copy)
@@ -67,40 +67,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/inferno-melee-1.png"
+            image="units/drakes/inferno-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/inferno-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/inferno-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/inferno-melee-4.png"
+                image="units/drakes/inferno-melee-4.png:100"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/inferno-melee-4.png"
+                image="units/drakes/inferno-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/inferno-melee-5.png"
+            image="units/drakes/inferno-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/inferno-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/drakes/Flameheart.cfg
===================================================================
--- data/core/units/drakes/Flameheart.cfg	(revision 56322)
+++ data/core/units/drakes/Flameheart.cfg	(working copy)
@@ -67,40 +67,24 @@
         offset=0.0~0.2,0.2~0.7,0.7~0.2,0.2~0.0
         start_time=-300
         [frame]
-            duration=100
-            image="units/drakes/flameheart-melee-1.png"
+            image="units/drakes/flameheart-melee-[1~3].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/flameheart-melee-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/flameheart-melee-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/drakes/flameheart-melee-4.png"
+                image="units/drakes/flameheart-melee-4.png:100"
                 sound=claws.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/drakes/flameheart-melee-4.png"
+                image="units/drakes/flameheart-melee-4.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/flameheart-melee-5.png"
+            image="units/drakes/flameheart-melee-[5,6].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/flameheart-melee-6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/gryphons/Gryphon_Rider.cfg
===================================================================
--- data/core/units/gryphons/Gryphon_Rider.cfg	(revision 56322)
+++ data/core/units/gryphons/Gryphon_Rider.cfg	(working copy)
@@ -50,72 +50,14 @@
         start_time=0
         layer=60
         [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-1.png"
+            image="units/dwarves/gryphon-rider-flying-[1~8].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-8.png"
-        [/frame]
     [/standing_anim]
     [movement_anim]
         start_time=0
         [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-1.png"
+            image="units/dwarves/gryphon-rider-flying-[1~8].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-rider-flying-8.png"
-        [/frame]
     [/movement_anim]
 
     {DEFENSE_ANIM "units/dwarves/gryphon-rider-flying-4.png" "units/dwarves/gryphon-rider-flying-5.png" {SOUND_LIST:GRYPHON_HIT} }
@@ -123,33 +65,26 @@
         [filter_attack]
             name=claws
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/dwarves/gryphon-rider-flying-5.png"
+            image="units/dwarves/gryphon-rider-flying-5.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/dwarves/gryphon-rider-flying-4.png"
+                image="units/dwarves/gryphon-rider-flying-4.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/dwarves/gryphon-rider-flying-4.png"
+                image="units/dwarves/gryphon-rider-flying-4.png:200"
                 sound=claws.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/dwarves/gryphon-rider-flying-5.png"
+            image="units/dwarves/gryphon-rider-flying-5.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/gryphons/Gryphon_Master.cfg
===================================================================
--- data/core/units/gryphons/Gryphon_Master.cfg	(revision 56322)
+++ data/core/units/gryphons/Gryphon_Master.cfg	(working copy)
@@ -50,72 +50,14 @@
         layer=60
         start_time=0
         [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-1.png"
+            image="units/dwarves/gryphon-master-flying-[1~8].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-8.png"
-        [/frame]
     [/standing_anim]
     [movement_anim]
         start_time=0
         [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-1.png"
+            image="units/dwarves/gryphon-master-flying-[1~8].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/dwarves/gryphon-master-flying-8.png"
-        [/frame]
     [/movement_anim]
 
     {DEFENSE_ANIM "units/dwarves/gryphon-master-flying-5.png" "units/dwarves/gryphon-master-flying-4.png" {SOUND_LIST:GRYPHON_HIT} }
@@ -123,33 +65,26 @@
         [filter_attack]
             name=claws
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/dwarves/gryphon-master-flying-4.png"
+            image="units/dwarves/gryphon-master-flying-4.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/dwarves/gryphon-master-flying-5.png"
+                image="units/dwarves/gryphon-master-flying-5.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/dwarves/gryphon-master-flying-5.png"
+                image="units/dwarves/gryphon-master-flying-5.png:200"
                 sound=claws.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/dwarves/gryphon-master-flying-4.png"
+            image="units/dwarves/gryphon-master-flying-4.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/gryphons/Gryphon.cfg
===================================================================
--- data/core/units/gryphons/Gryphon.cfg	(revision 56322)
+++ data/core/units/gryphons/Gryphon.cfg	(working copy)
@@ -48,72 +48,14 @@
         start_time=0
         layer=60
         [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-1.png"
+            image="units/monsters/gryphon-flying-[1~8].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-8.png"
-        [/frame]
     [/standing_anim]
     [movement_anim]
         start_time=0
         [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-1.png"
+            image="units/monsters/gryphon-flying-[1~8].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/monsters/gryphon-flying-8.png"
-        [/frame]
     [/movement_anim]
 
     {DEFENSE_ANIM "units/monsters/gryphon-flying-4.png" "units/monsters/gryphon-flying-5.png" {SOUND_LIST:GRYPHON_HIT} }
@@ -121,33 +63,26 @@
         [filter_attack]
             name=claws
         [/filter_attack]
+        start_time=-200
         [frame]
-            begin=-200
-            end=-100
-            image="units/monsters/gryphon-flying-5.png"
+            image="units/monsters/gryphon-flying-5.png:100"
         [/frame]
         [if]
             hits=no
             [frame]
-                begin=-100
-                end=100
-                image="units/monsters/gryphon-flying-4.png"
+                image="units/monsters/gryphon-flying-4.png:200"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-100
-                end=100
-                image="units/monsters/gryphon-flying-4.png"
+                image="units/monsters/gryphon-flying-4.png:200"
                 sound=claws.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/monsters/gryphon-flying-5.png"
+            image="units/monsters/gryphon-flying-5.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/wose/Elder.cfg
===================================================================
--- data/core/units/wose/Elder.cfg	(revision 56322)
+++ data/core/units/wose/Elder.cfg	(working copy)
@@ -38,65 +38,8 @@
     [death]
         start_time=0
         [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-1.png"
+            image="units/woses/wose-elder-die-fall-[1~15].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-13.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-14.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-die-fall-15.png"
-        [/frame]
     [/death]
     [attack]
         name=crush
@@ -116,26 +59,19 @@
         [if]
             hits=yes
             [frame]
-                duration=400
-                image="units/woses/wose-elder-attack-1.png"
+                image="units/woses/wose-elder-attack-1.png:400"
                 sound=wose-attack.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=400
-                image="units/woses/wose-elder-attack-1.png"
+                image="units/woses/wose-elder-attack-1.png:400"
                 sound=wose-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=200
-            image="units/woses/wose-elder-attack-2.png"
+            image="units/woses/wose-elder-attack-[2,1].png:[200,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-elder-attack-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/wose/Wose.cfg
===================================================================
--- data/core/units/wose/Wose.cfg	(revision 56322)
+++ data/core/units/wose/Wose.cfg	(working copy)
@@ -52,65 +52,8 @@
         [/filter_attack]
         start_time=0
         [frame]
-            duration=100
-            image="units/woses/wose-die-fall-1.png"
+            image="units/woses/wose-die-fall-[1~15].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-13.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-14.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-die-fall-15.png"
-        [/frame]
     [/death]
     [death]
         [filter_attack]
@@ -118,41 +61,8 @@
         [/filter_attack]
         start_time=0
         [frame]
-            duration=150
-            image="units/woses/wose-die-decay-1.png"
+            image="units/woses/wose-die-decay-[1~9].png:150"
         [/frame]
-        [frame]
-            duration=150
-            image="units/woses/wose-die-decay-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/woses/wose-die-decay-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/woses/wose-die-decay-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/woses/wose-die-decay-5.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/woses/wose-die-decay-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/woses/wose-die-decay-7.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/woses/wose-die-decay-8.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/woses/wose-die-decay-9.png"
-        [/frame]
     [/death]
     [attack_anim]
         [filter_attack]
@@ -162,26 +72,19 @@
         [if]
             hits=yes
             [frame]
-                duration=400
-                image="units/woses/wose-attack-1.png"
+                image="units/woses/wose-attack-1.png:400"
                 sound=wose-attack.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=400
-                image="units/woses/wose-attack-1.png"
+                image="units/woses/wose-attack-1.png:400"
                 sound=wose-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=150
-            image="units/woses/wose-attack-2.png"
+            image="units/woses/wose-attack-[2,1].png:[150,75]"
         [/frame]
-        [frame]
-            duration=75
-            image="units/woses/wose-attack-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/wose/Ancient.cfg
===================================================================
--- data/core/units/wose/Ancient.cfg	(revision 56322)
+++ data/core/units/wose/Ancient.cfg	(working copy)
@@ -39,65 +39,8 @@
     [death]
         start_time=0
         [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-1.png"
+            image="units/woses/wose-ancient-die-fall-[1~15].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-8.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-9.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-10.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-11.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-12.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-13.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-14.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-die-fall-15.png"
-        [/frame]
     [/death]
     [attack]
         name=crush
@@ -117,26 +60,19 @@
         [if]
             hits=yes
             [frame]
-                duration=400
-                image="units/woses/wose-ancient-attack-1.png"
+                image="units/woses/wose-ancient-attack-1.png:400"
                 sound=wose-attack.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=400
-                image="units/woses/wose-ancient-attack-1.png"
+                image="units/woses/wose-ancient-attack-1.png:400"
                 sound=wose-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=200
-            image="units/woses/wose-ancient-attack-2.png"
+            image="units/woses/wose-ancient-attack-[2,1].png:[200,100]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/woses/wose-ancient-attack-1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/trolls/Troll_Shaman.cfg
===================================================================
--- data/core/units/trolls/Troll_Shaman.cfg	(revision 56322)
+++ data/core/units/trolls/Troll_Shaman.cfg	(working copy)
@@ -84,32 +84,27 @@
             direction=se,s,sw
 
             [flame_burst_1_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=-22,0
                 offset=1.0
             [/flame_burst_1_frame]
             [flame_burst_2_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=-14,9
                 offset=1.0
             [/flame_burst_2_frame]
             [flame_burst_3_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=0,12
                 offset=1.0
             [/flame_burst_3_frame]
             [flame_burst_4_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=14,9
                 offset=1.0
             [/flame_burst_4_frame]
             [flame_burst_5_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png~FL(vert):[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=22,0
                 offset=1.0
             [/flame_burst_5_frame]
@@ -118,32 +113,27 @@
             direction=ne,n,nw
 
             [flame_burst_1_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=-22,0
                 offset=1.0
             [/flame_burst_1_frame]
             [flame_burst_2_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=-14,9
                 offset=1.0
             [/flame_burst_2_frame]
             [flame_burst_3_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=0,12
                 offset=1.0
             [/flame_burst_3_frame]
             [flame_burst_4_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=14,9
                 offset=1.0
             [/flame_burst_4_frame]
             [flame_burst_5_frame]
-                duration=400
-                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50,50,50,50,50,50,50,48],misc/blank-hex.png:1
+                halo=misc/blank-hex.png:1,halo/flame-burst-[1~8].png:[50*7,48],misc/blank-hex.png:1
                 halo_x,halo_y=22,0
                 offset=1.0
             [/flame_burst_5_frame]
@@ -151,25 +141,11 @@
 
         [frame]
             sound=fire.wav
-            duration=100
-            image=units/trolls/shaman-ranged-1.png
+            image=units/trolls/shaman-ranged-1.png:100
         [/frame]
         [frame]
-            duration=100
-            image=units/trolls/shaman-ranged-2.png
+            image=units/trolls/shaman-ranged-[2,3~1].png:[100,200,100*2]
         [/frame]
-        [frame]
-            duration=200
-            image=units/trolls/shaman-ranged-3.png
-        [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/shaman-ranged-2.png
-        [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/shaman-ranged-1.png
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -179,28 +155,10 @@
         start_time=-300
         {SOUND:HIT_AND_MISS fist.ogg {SOUND_LIST:MISS} -100}
         [frame]
-            duration=100
-            image=units/trolls/shaman-fist-1.png
+            image=units/trolls/shaman-fist-[1~5].png:100
         [/frame]
         [frame]
-            duration=100
-            image=units/trolls/shaman-fist-2.png
+            image=units/trolls/shaman.png:50
         [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/shaman-fist-3.png
-        [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/shaman-fist-4.png
-        [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/shaman-fist-5.png
-        [/frame]
-        [frame]
-            duration=50
-            image=units/trolls/shaman.png
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/trolls/Rocklobber.cfg
===================================================================
--- data/core/units/trolls/Rocklobber.cfg	(revision 56322)
+++ data/core/units/trolls/Rocklobber.cfg	(working copy)
@@ -59,71 +59,55 @@
         start_time=-1000
         offset=0
 
+        sling_stone_start_time=-801
         [if]
             hits=yes
             [sling_stone_frame]
-                begin=-801
-                end=-800
-                image="misc/blank-hex.png"
+                image="misc/blank-hex.png:1"
             [/sling_stone_frame]
             [sling_stone_frame]
-                begin=-800
-                end=0
-                halo="projectiles/stone-large.png"
+                halo="projectiles/stone-large.png:800"
                 halo_x=24~0
                 halo_y=0~-10,-10~-18,-18~-22,-22~-24,-24~-25,-25~-24,-24~-22,-22~-18,-18~-10,-10~-0
                 offset=0.0~1.0
             [/sling_stone_frame]
             [sling_stone_frame]
-                begin=0
-                end=1
-                image="misc/blank-hex.png"
+                image="misc/blank-hex.png:1"
             [/sling_stone_frame]
 
             [frame]
-                duration=200
-                image="units/trolls/lobber-attack-ranged1.png"
+                image="units/trolls/lobber-attack-ranged1.png:200"
                 sound=sling-big.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [sling_stone_frame]
-                begin=-801
-                end=-800
-                image="misc/blank-hex.png"
+                image="misc/blank-hex.png:1"
             [/sling_stone_frame]
             [sling_stone_frame]
-                begin=-800
-                end=100
-                halo="projectiles/stone-large.png"
+                halo="projectiles/stone-large.png:900"
                 halo_x=24~0
                 halo_y=0~-10,-10~-16,-16~-20,-20~-22,-22~-20,-20~-16,-16~-10,-10~0,0~-4,-4~0,0~-2,-2~0
                 offset=0.0~1.5
             [/sling_stone_frame]
             [sling_stone_frame]
-                begin=100
-                end=101
-                image="misc/blank-hex.png"
+                image="misc/blank-hex.png:1"
             [/sling_stone_frame]
 
             [frame]
-                duration=200
-                image="units/trolls/lobber-attack-ranged1.png"
+                image="units/trolls/lobber-attack-ranged1.png:200"
                 sound=sling-big-miss.ogg
             [/frame]
         [/else]
         [frame]
-            duration=600
-            image="units/trolls/lobber-attack-ranged2.png"
+            image="units/trolls/lobber-attack-ranged2.png:600"
         [/frame]
         [frame]
-            duration=100
-            image="units/trolls/lobber-defend.png"
+            image="units/trolls/lobber-defend.png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/trolls/lobber.png"
+            image="units/trolls/lobber.png:100"
         [/frame]
     [/attack_anim]
     [attack_anim]
@@ -132,28 +116,24 @@
         [/filter_attack]
         start_time=-200
         [frame]
-            duration=50
-            image="units/trolls/lobber.png"
+            image="units/trolls/lobber.png:50"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=250
-                image="units/trolls/lobber-attack-melee.png"
+                image="units/trolls/lobber-attack-melee.png:250"
                 sound=fist.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=250
-                image="units/trolls/lobber-attack-melee.png"
+                image="units/trolls/lobber-attack-melee.png:250"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/trolls/lobber.png"
+            image="units/trolls/lobber.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/trolls/Warrior.cfg
===================================================================
--- data/core/units/trolls/Warrior.cfg	(revision 56322)
+++ data/core/units/trolls/Warrior.cfg	(working copy)
@@ -49,48 +49,30 @@
         [/filter_attack]
         start_time=-300
         [frame]
-            duration=25
-            image="units/trolls/warrior.png"
+            image="units/trolls/warrior.png:25"
         [/frame]
         [frame]
-            duration=75
-            image="units/trolls/warrior-attack-1.png"
+            image="units/trolls/warrior-attack-[1~3].png:[75,50,75]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/trolls/warrior-attack-2.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/trolls/warrior-attack-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=175
-                image="units/trolls/warrior-attack-4.png"
+                image="units/trolls/warrior-attack-4.png:175"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=175
-                image="units/trolls/warrior-attack-4.png"
+                image="units/trolls/warrior-attack-4.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=75
-            image="units/trolls/warrior-attack-3.png"
+            image="units/trolls/warrior-attack-[3,1].png:[75,25]"
         [/frame]
         [frame]
-            duration=25
-            image="units/trolls/warrior-attack-1.png"
+            image="units/trolls/warrior.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/trolls/warrior.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/trolls/Troll.cfg
===================================================================
--- data/core/units/trolls/Troll.cfg	(revision 56322)
+++ data/core/units/trolls/Troll.cfg	(working copy)
@@ -47,44 +47,30 @@
         [/filter_attack]
         start_time=-300
         [frame]
-            duration=25
-            image="units/trolls/grunt.png"
+            image="units/trolls/grunt.png:25"
         [/frame]
         [frame]
-            duration=75
-            image="units/trolls/grunt-attack-1.png"
+            image="units/trolls/grunt-attack-1.png:75"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=75
-                image="units/trolls/grunt-attack-2.png"
+                image="units/trolls/grunt-attack-2.png:75"
                 sound=club.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=75
-                image="units/trolls/grunt-attack-2.png"
+                image="units/trolls/grunt-attack-2.png:75"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=75
-            image="units/trolls/grunt-attack-3.png"
+            image="units/trolls/grunt-attack-[3,4,3].png:[75,95,80]"
         [/frame]
         [frame]
-            duration=95
-            image="units/trolls/grunt-attack-4.png"
+            image="units/trolls/grunt-defend.png:75"
         [/frame]
-        [frame]
-            duration=80
-            image="units/trolls/grunt-attack-3.png"
-        [/frame]
-        [frame]
-            duration=75
-            image="units/trolls/grunt-defend.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/trolls/Hero.cfg
===================================================================
--- data/core/units/trolls/Hero.cfg	(revision 56322)
+++ data/core/units/trolls/Hero.cfg	(working copy)
@@ -52,41 +52,25 @@
         start_time=-300
 
         [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-se-1.png
+            image=units/trolls/troll-hero-attack-se-[1,2].png:100
         [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-se-2.png
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image=units/trolls/troll-hero-attack-se-3.png
+                image=units/trolls/troll-hero-attack-se-3.png:100
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image=units/trolls/troll-hero-attack-se-3.png
+                image=units/trolls/troll-hero-attack-se-3.png:100
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-se-4.png
+            image=units/trolls/troll-hero-attack-se-[4~6].png:100
         [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-se-5.png
-        [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-se-6.png
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -98,41 +82,25 @@
         start_time=-300
 
         [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-se-1.png
+            image=units/trolls/troll-hero-attack-se-[1,2].png:100
         [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-se-2.png
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image=units/trolls/troll-hero-attack-se-3.png
+                image=units/trolls/troll-hero-attack-se-3.png:100
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image=units/trolls/troll-hero-attack-se-3.png
+                image=units/trolls/troll-hero-attack-se-3.png:100
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-s-4.png
+            image=units/trolls/troll-hero-attack-s-[4~6].png:100
         [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-s-5.png
-        [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-s-6.png
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -144,44 +112,27 @@
         start_time=-300
 
         [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-se-1.png
+            image=units/trolls/troll-hero-attack-[se-1,ne-2].png:100
         [/frame]
-        [frame]
-            duration=100
-            image=units/trolls/troll-hero-attack-ne-2.png
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image=units/trolls/troll-hero-attack-ne-3.png
+                image=units/trolls/troll-hero-attack-ne-3.png:100
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image=units/trolls/troll-hero-attack-ne-3.png
+                image=units/trolls/troll-hero-attack-ne-3.png:100
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=75
-            image=units/trolls/troll-hero-attack-ne-4.png
+            image=units/trolls/troll-hero-attack-ne-[4~6].png:75
         [/frame]
         [frame]
-            duration=75
-            image=units/trolls/troll-hero-attack-ne-5.png
+            image=units/trolls/troll-hero-attack-se-1.png:75
         [/frame]
-        [frame]
-            duration=75
-            image=units/trolls/troll-hero-attack-ne-6.png
-        [/frame]
-        [frame]
-            duration=75
-            image=units/trolls/troll-hero-attack-se-1.png
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/trolls/Whelp.cfg
===================================================================
--- data/core/units/trolls/Whelp.cfg	(revision 56322)
+++ data/core/units/trolls/Whelp.cfg	(working copy)
@@ -48,101 +48,21 @@
     #    [death]
     #        start_time=0
     #        [frame]
-    #            duration=100
-    #            image="units/trolls/whelp-die-1.png"
+    #            image="units/trolls/whelp-die-[1~4].png:100"
     #        [/frame]
     #        [frame]
-    #            duration=100
-    #            image="units/trolls/whelp-die-2.png"
+    #            image="units/trolls/whelp-skeleton.png:200"
     #        [/frame]
     #        [frame]
-    #            duration=100
-    #            image="units/trolls/whelp-die-3.png"
-    #       [/frame]
-    #        [frame]
-    #            duration=100
-    #            image="units/trolls/whelp-die-4.png"
+    #            image="units/trolls/whelp-die-[5~7].png:[100*2,250]"
     #        [/frame]
-    #        [frame]
-    #            duration=200
-    #            image="units/trolls/whelp-skeleton.png"
-    #        [/frame]
-    #        [frame]
-    #            duration=100
-    #            image="units/trolls/whelp-die-5.png"
-    #        [/frame]
-    #        [frame]
-    #            duration=100
-    #            image="units/trolls/whelp-die-6.png"
-    #        [/frame]
-    #        [frame]
-    #            duration=250
-    #            image="units/trolls/whelp-die-7.png"
-    #        [/frame]
     #    [/death]
     [idle_anim]
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=100
-            image="units/trolls/whelp-idle-1.png"
+            image="units/trolls/whelp-idle-[1~7,6,7~1].png:[100*6,150,175,150,100*6]"
         [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/trolls/whelp-idle-7.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/trolls/whelp-idle-6.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/trolls/whelp-idle-7.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-6.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/trolls/whelp-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
@@ -150,36 +70,27 @@
         [/filter_attack]
         start_time=-250
         [frame]
-            duration=100
-            image="units/trolls/whelp-attack-1.png"
+            image="units/trolls/whelp-attack-1.png:100"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=125
-                image="units/trolls/whelp-attack-2.png"
+                image="units/trolls/whelp-attack-2.png:125"
                 sound=fist.ogg
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=125
-                image="units/trolls/whelp-attack-2.png"
+                image="units/trolls/whelp-attack-2.png:125"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/trolls/whelp-attack-3.png"
+            image="units/trolls/whelp-attack-[3,1].png:[100,75]"
         [/frame]
         [frame]
-            duration=75
-            image="units/trolls/whelp-attack-1.png"
+            image="units/trolls/whelp.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/trolls/whelp.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/trolls/Great.cfg
===================================================================
--- data/core/units/trolls/Great.cfg	(revision 56322)
+++ data/core/units/trolls/Great.cfg	(working copy)
@@ -49,48 +49,30 @@
         [/filter_attack]
         start_time=-300
         [frame]
-            duration=25
-            image="units/trolls/warrior.png"
+            image="units/trolls/warrior.png:25"
         [/frame]
         [frame]
-            duration=75
-            image="units/trolls/warrior-attack-1.png"
+            image="units/trolls/warrior-attack-[1~3].png:[75,50,25]"
         [/frame]
-        [frame]
-            duration=50
-            image="units/trolls/warrior-attack-2.png"
-        [/frame]
-        [frame]
-            duration=25
-            image="units/trolls/warrior-attack-3.png"
-        [/frame]
         [if]
             hits=yes
             [frame]
-                duration=175
-                image="units/trolls/warrior-attack-4.png"
+                image="units/trolls/warrior-attack-4.png:175"
                 sound=mace.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=175
-                image="units/trolls/warrior-attack-4.png"
+                image="units/trolls/warrior-attack-4.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=75
-            image="units/trolls/warrior-attack-3.png"
+            image="units/trolls/warrior-attack-[3,1].png:[75,25]"
         [/frame]
         [frame]
-            duration=25
-            image="units/trolls/warrior-attack-1.png"
+            image="units/trolls/warrior.png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/trolls/warrior.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/ogres/Ogre.cfg
===================================================================
--- data/core/units/ogres/Ogre.cfg	(revision 56322)
+++ data/core/units/ogres/Ogre.cfg	(working copy)
@@ -45,63 +45,35 @@
     {DEFENSE_ANIM "units/ogres/ogre-defend.png" "units/ogres/ogre.png" {SOUND_LIST:OGRE_HIT} }
     [idle_anim]
         {STANDARD_IDLE_FILTER}
+        start_time=0
         [frame]
-            begin=0
-            end=100
-            image="units/ogres/ogre-idle-1.png"
+            image="units/ogres/ogre-idle-[1,2,1].png:[100,1000,100]"
         [/frame]
-        [frame]
-            begin=100
-            end=1100
-            image="units/ogres/ogre-idle-2.png"
-        [/frame]
-        [frame]
-            begin=1100
-            end=1200
-            image="units/ogres/ogre-idle-1.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=cleaver
         [/filter_attack]
+        start_time=-325
         [frame]
-            begin=-325
-            end=-250
-            image="units/ogres/ogre-attack1.png"
+            image="units/ogres/ogre-attack[1~3].png:[75,100,75]"
         [/frame]
-        [frame]
-            begin=-250
-            end=-150
-            image="units/ogres/ogre-attack2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/ogres/ogre-attack3.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=100
-                image="units/ogres/ogre-attack4.png"
+                image="units/ogres/ogre-attack4.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=100
-                image="units/ogres/ogre-attack4.png"
+                image="units/ogres/ogre-attack4.png:175"
                 sound=axe.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/ogres/ogre-attack5.png"
+            image="units/ogres/ogre-attack5.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/ogres/Young_Ogre.cfg
===================================================================
--- data/core/units/ogres/Young_Ogre.cfg	(revision 56322)
+++ data/core/units/ogres/Young_Ogre.cfg	(working copy)
@@ -47,111 +47,33 @@
         {STANDARD_IDLE_FILTER}
         start_time=0
         [frame]
-            duration=200
-            image="units/ogres/young-ogre-idle-3.png"
+            image="units/ogres/young-ogre-idle-[3,4~1,2,1,2,1,2,1,2,1,3,4,3].png:[200,175,150*3,125*2,100*2,125*2,150*3,175,200]"
         [/frame]
-        [frame]
-            duration=175
-            image="units/ogres/young-ogre-idle-4.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/ogres/young-ogre-idle-3.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/ogres/young-ogre-idle-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/ogres/young-ogre-idle-1.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/ogres/young-ogre-idle-2.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/ogres/young-ogre-idle-1.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/ogres/young-ogre-idle-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/ogres/young-ogre-idle-1.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/ogres/young-ogre-idle-2.png"
-        [/frame]
-        [frame]
-            duration=125
-            image="units/ogres/young-ogre-idle-1.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/ogres/young-ogre-idle-2.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/ogres/young-ogre-idle-1.png"
-        [/frame]
-        [frame]
-            duration=150
-            image="units/ogres/young-ogre-idle-3.png"
-        [/frame]
-        [frame]
-            duration=175
-            image="units/ogres/young-ogre-idle-4.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/ogres/young-ogre-idle-3.png"
-        [/frame]
     [/idle_anim]
     [attack_anim]
         [filter_attack]
             name=cleaver
         [/filter_attack]
+        start_time=-325
         [frame]
-            begin=-325
-            end=-250
-            image="units/ogres/young-ogre-attack1.png"
+            image="units/ogres/young-ogre-attack[1~3].png:[75,100,75]"
         [/frame]
-        [frame]
-            begin=-250
-            end=-150
-            image="units/ogres/young-ogre-attack2.png"
-        [/frame]
-        [frame]
-            begin=-150
-            end=-75
-            image="units/ogres/young-ogre-attack3.png"
-        [/frame]
         [if]
             hits=no
             [frame]
-                begin=-75
-                end=100
-                image="units/ogres/young-ogre-attack4.png"
+                image="units/ogres/young-ogre-attack4.png:175"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/if]
         [else]
             hits=yes
             [frame]
-                begin=-75
-                end=100
-                image="units/ogres/young-ogre-attack4.png"
+                image="units/ogres/young-ogre-attack4.png:175"
                 sound=axe.ogg
             [/frame]
         [/else]
         [frame]
-            begin=100
-            end=200
-            image="units/ogres/young-ogre-attack5.png"
+            image="units/ogres/young-ogre-attack5.png:100"
         [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/saurians/Flanker.cfg
===================================================================
--- data/core/units/saurians/Flanker.cfg	(revision 56322)
+++ data/core/units/saurians/Flanker.cfg	(working copy)
@@ -61,9 +61,9 @@
             name=spear
             range=ranged
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             offset=-0.2~1.0
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
Index: data/core/units/saurians/Augur.cfg
===================================================================
--- data/core/units/saurians/Augur.cfg	(revision 56322)
+++ data/core/units/saurians/Augur.cfg	(working copy)
@@ -83,41 +83,28 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=150
-            image="units/saurians/augur/augur-se-melee1.png"
+            image="units/saurians/augur/augur-se-melee1.png:150"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/saurians/augur/augur-se-melee2.png"
+                image="units/saurians/augur/augur-se-melee2.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/saurians/augur/augur-se-melee2.png"
+                image="units/saurians/augur/augur-se-melee2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/saurians/augur/augur-se-melee3.png"
+            image="units/saurians/augur/augur-se-melee[3~5].png:[100,90,80]"
         [/frame]
         [frame]
-            duration=90
-            image="units/saurians/augur/augur-se-melee4.png"
+            image="units/saurians/augur/augur-se-defend1.png:50"
         [/frame]
-        [frame]
-            duration=80
-            image="units/saurians/augur/augur-se-melee5.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/saurians/augur/augur-se-defend1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -127,40 +114,27 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=150
-            image="units/saurians/augur/augur-ne-melee1.png"
+            image="units/saurians/augur/augur-ne-melee1.png:150"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/saurians/augur/augur-ne-melee2.png"
+                image="units/saurians/augur/augur-ne-melee2.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/saurians/augur/augur-ne-melee2.png"
+                image="units/saurians/augur/augur-ne-melee2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/saurians/augur/augur-ne-melee3.png"
+            image="units/saurians/augur/augur-ne-melee[3~5].png:[100,90,80]"
         [/frame]
         [frame]
-            duration=90
-            image="units/saurians/augur/augur-ne-melee4.png"
+            image="units/saurians/augur/augur-ne-defend1.png:50"
         [/frame]
-        [frame]
-            duration=80
-            image="units/saurians/augur/augur-ne-melee5.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/saurians/augur/augur-ne-defend1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/saurians/Oracle.cfg
===================================================================
--- data/core/units/saurians/Oracle.cfg	(revision 56322)
+++ data/core/units/saurians/Oracle.cfg	(working copy)
@@ -81,41 +81,28 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=150
-            image="units/saurians/oracle/oracle-se-melee1.png"
+            image="units/saurians/oracle/oracle-se-melee1.png:150"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/saurians/oracle/oracle-se-melee2.png"
+                image="units/saurians/oracle/oracle-se-melee2.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/saurians/oracle/oracle-se-melee2.png"
+                image="units/saurians/oracle/oracle-se-melee2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/saurians/oracle/oracle-se-melee3.png"
+            image="units/saurians/oracle/oracle-se-melee[3~5].png:[100,90,80]"
         [/frame]
         [frame]
-            duration=90
-            image="units/saurians/oracle/oracle-se-melee4.png"
+            image="units/saurians/oracle/oracle-se-defend1.png:50"
         [/frame]
-        [frame]
-            duration=80
-            image="units/saurians/oracle/oracle-se-melee5.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/saurians/oracle/oracle-se-defend1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -125,40 +112,24 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=150
-            image="units/saurians/oracle/oracle-ne-melee1.png"
+            image="units/saurians/oracle/oracle-ne-melee1.png:150"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/saurians/oracle/oracle-ne-melee2.png"
+                image="units/saurians/oracle/oracle-ne-melee2.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/saurians/oracle/oracle-ne-melee2.png"
+                image="units/saurians/oracle/oracle-ne-melee2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/saurians/oracle/oracle-ne-melee3.png"
+            image="units/saurians/oracle/oracle-ne-melee[3~6].png:[100,90,80,50]"
         [/frame]
-        [frame]
-            duration=90
-            image="units/saurians/oracle/oracle-ne-melee4.png"
-        [/frame]
-        [frame]
-            duration=80
-            image="units/saurians/oracle/oracle-ne-melee5.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/saurians/oracle/oracle-ne-melee6.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/saurians/Ambusher.cfg
===================================================================
--- data/core/units/saurians/Ambusher.cfg	(revision 56322)
+++ data/core/units/saurians/Ambusher.cfg	(working copy)
@@ -61,9 +61,9 @@
             name=spear
             range=ranged
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             offset=-0.2~1.0
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
Index: data/core/units/saurians/Soothsayer.cfg
===================================================================
--- data/core/units/saurians/Soothsayer.cfg	(revision 56322)
+++ data/core/units/saurians/Soothsayer.cfg	(working copy)
@@ -83,41 +83,28 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=150
-            image="units/saurians/soothsayer/soothsayer-se-melee1.png"
+            image="units/saurians/soothsayer/soothsayer-se-melee1.png:150"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/saurians/soothsayer/soothsayer-se-melee2.png"
+                image="units/saurians/soothsayer/soothsayer-se-melee2.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/saurians/soothsayer/soothsayer-se-melee2.png"
+                image="units/saurians/soothsayer/soothsayer-se-melee2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/saurians/soothsayer/soothsayer-se-melee3.png"
+            image="units/saurians/soothsayer/soothsayer-se-melee[3~5].png:[100,90,80]"
         [/frame]
         [frame]
-            duration=90
-            image="units/saurians/soothsayer/soothsayer-se-melee4.png"
+            image="units/saurians/soothsayer/soothsayer-se-defend1.png:50"
         [/frame]
-        [frame]
-            duration=80
-            image="units/saurians/soothsayer/soothsayer-se-melee5.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/saurians/soothsayer/soothsayer-se-defend1.png"
-        [/frame]
     [/attack_anim]
     [attack_anim]
         [filter_attack]
@@ -127,40 +114,27 @@
         offset=0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0
         start_time=-250
         [frame]
-            duration=150
-            image="units/saurians/soothsayer/soothsayer-ne-melee1.png"
+            image="units/saurians/soothsayer/soothsayer-ne-melee1.png:150"
         [/frame]
         [if]
             hits=yes
             [frame]
-                duration=100
-                image="units/saurians/soothsayer/soothsayer-ne-melee2.png"
+                image="units/saurians/soothsayer/soothsayer-ne-melee2.png:100"
                 sound=staff.wav
             [/frame]
         [/if]
         [else]
             hits=no
             [frame]
-                duration=100
-                image="units/saurians/soothsayer/soothsayer-ne-melee2.png"
+                image="units/saurians/soothsayer/soothsayer-ne-melee2.png:100"
                 sound={SOUND_LIST:MISS}
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/saurians/soothsayer/soothsayer-ne-melee3.png"
+            image="units/saurians/soothsayer/soothsayer-ne-melee[3~5].png:[100,90,80]"
         [/frame]
         [frame]
-            duration=90
-            image="units/saurians/soothsayer/soothsayer-ne-melee4.png"
+            image="units/saurians/soothsayer/soothsayer-ne-defend1.png:50"
         [/frame]
-        [frame]
-            duration=80
-            image="units/saurians/soothsayer/soothsayer-ne-melee5.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/saurians/soothsayer/soothsayer-ne-defend1.png"
-        [/frame]
     [/attack_anim]
 [/unit_type]
Index: data/core/units/saurians/Skirmisher.cfg
===================================================================
--- data/core/units/saurians/Skirmisher.cfg	(revision 56322)
+++ data/core/units/saurians/Skirmisher.cfg	(working copy)
@@ -46,85 +46,8 @@
         [/filter]
         start_time=0
         [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-1.png"
+            image="units/saurians/skirmisher/skirmisher-idle-[1~7,6,5,6,8~13].png:200,units/saurians/skirmisher/skirmisher-idle-[12,13,12,13].png:[225*2,250*2]"
         [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-2.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-3.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-4.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-5.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-7.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-5.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-6.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-8.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-9.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-10.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-11.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-12.png"
-        [/frame]
-        [frame]
-            duration=200
-            image="units/saurians/skirmisher/skirmisher-idle-13.png"
-        [/frame]
-        [frame]
-            duration=225
-            image="units/saurians/skirmisher/skirmisher-idle-12.png"
-        [/frame]
-        [frame]
-            duration=225
-            image="units/saurians/skirmisher/skirmisher-idle-13.png"
-        [/frame]
-        [frame]
-            duration=250
-            image="units/saurians/skirmisher/skirmisher-idle-12.png"
-        [/frame]
-        [frame]
-            duration=250
-            image="units/saurians/skirmisher/skirmisher-idle-13.png"
-        [/frame]
     [/idle_anim]
     [attack]
         name=spear
@@ -155,9 +78,9 @@
             name=spear
             range=ranged
         [/filter_attack]
+        missile_start_time=-150
         [missile_frame]
-            begin=-150
-            end=0
+            duration=150
             offset=-0.2~1.0
             image="projectiles/spear-n.png"
             image_diagonal="projectiles/spear-ne.png"
Index: data/core/macros/teleport-utils.cfg
===================================================================
--- data/core/macros/teleport-utils.cfg	(revision 56322)
+++ data/core/macros/teleport-utils.cfg	(working copy)
@@ -75,48 +75,48 @@
             [/teleport_sparkle_3_frame]
 
             [frame]
-                	duration=100
-			image_mod=~MASK(masks/teleport-mask-0.png)
+                duration=100
+                image_mod=~MASK(masks/teleport-mask-0.png)
             [/frame]
             [frame]
-                	duration=100
-			image_mod=~MASK(masks/teleport-mask-1.png)
+                duration=100
+                image_mod=~MASK(masks/teleport-mask-1.png)
             [/frame]
         	[frame]
-            	duration=100
-			image_mod=~MASK(masks/teleport-mask-2.png)
+                duration=100
+                image_mod=~MASK(masks/teleport-mask-2.png)
         	[/frame]
         	[frame]
-            	duration=100
-			image_mod=~MASK(masks/teleport-mask-3.png)
+                duration=100
+                image_mod=~MASK(masks/teleport-mask-3.png)
         	[/frame]
         	[frame]
             	duration=100
             	image_mod=~MASK(masks/teleport-mask-4.png)
         	[/frame]
         	[frame]
-            	duration=100
-            	image_mod=~MASK(masks/teleport-mask-5.png)
+                duration=100
+                image_mod=~MASK(masks/teleport-mask-5.png)
         	[/frame]
         	[frame]
             	duration=100
             	image_mod=~MASK(masks/teleport-mask-6.png)
         	[/frame]
         	[frame]
-            	duration=100
-            	image_mod=~MASK(masks/teleport-mask-7.png)
+                duration=100
+                image_mod=~MASK(masks/teleport-mask-7.png)
         	[/frame]
         	[frame]
-            	duration=100
-            	image_mod=~MASK(masks/teleport-mask-8.png)
+                duration=100
+                image_mod=~MASK(masks/teleport-mask-8.png)
         	[/frame]
         	[frame]
-            	duration=100
-            	image_mod=~MASK(masks/teleport-mask-9.png)
+                duration=100
+                image_mod=~MASK(masks/teleport-mask-9.png)
         	[/frame]
         	[frame]
-            	duration=200
-            	image="misc/blank-hex.png"
+                duration=200
+                image="misc/blank-hex.png"
         	[/frame]
 #enddef
 
@@ -220,8 +220,8 @@
 
         [animation]
             apply_to=pre_teleport
-		{TELEPORT_OUT_ANIMATION}
-    	  [/animation]
+		    {TELEPORT_OUT_ANIMATION}
+    	[/animation]
 
         [animation]
         	apply_to=post_teleport
@@ -248,13 +248,13 @@
 
         [animation]
             apply_to=pre_teleport
-		{TELEPORT_OUT_ANIMATION}
-    	  [/animation]
+            {TELEPORT_OUT_ANIMATION}
+    	[/animation]
 
         [animation]
         	apply_to=post_teleport
         	{TELEPORT_IN_ANIMATION}
-         [/animation]
+        [/animation]
 	[/effect]
 [/object]
 #enddef
Index: data/core/macros/animation-utils2.cfg
===================================================================
--- data/core/macros/animation-utils2.cfg	(revision 56322)
+++ data/core/macros/animation-utils2.cfg	(working copy)
@@ -8,32 +8,14 @@
     [if]
         direction=s,se,sw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-magic1.png
+            image={BASE_IMAGE_NAME}-se-magic[1,2,1].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-magic2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-magic1.png
-        [/frame]
     [/if]
     [else]
         direction=n,ne,nw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-magic1.png
+            image={BASE_IMAGE_NAME}-ne-magic[1,2,1].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-magic2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-magic1.png
-        [/frame]
     [/else]
 #enddef
 
@@ -60,80 +42,14 @@
     [if]
         direction=s,se,sw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}[1~9].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}9.png
-        [/frame]
     [/if]
     [else]
         direction=n,ne,nw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}[1~9].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}9.png
-        [/frame]
     [/else]
 #enddef
 
@@ -160,88 +76,14 @@
     [if]
         direction=s,se,sw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}[1~10].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}10.png
-        [/frame]
     [/if]
     [else]
         direction=n,ne,nw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}[1~10].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}10.png
-        [/frame]
     [/else]
 #enddef
 
@@ -269,174 +111,26 @@
     [if]
         direction=se,sw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}[1~10].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}10.png
-        [/frame]
     [/if]
     [else]
         direction=s
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}[1~10].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}10.png
-        [/frame]
     [/else]
     [else]
         direction=n
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}[1~10].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}10.png
-        [/frame]
     [/else]
     [else]
         direction=ne,nw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}[1~10].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}10.png
-        [/frame]
     [/else]
 #enddef
 
@@ -464,206 +158,26 @@
     [if]
         direction=se,sw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}[1~12].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}10.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}11.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-se-{TAIL_IMAGE_NAME}12.png
-        [/frame]
     [/if]
     [else]
         direction=s
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}[1~12].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}10.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}11.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-s-{TAIL_IMAGE_NAME}12.png
-        [/frame]
     [/else]
     [else]
         direction=n
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}[1~12].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}10.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}11.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-n-{TAIL_IMAGE_NAME}12.png
-        [/frame]
     [/else]
     [else]
         direction=ne,nw
         [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}1.png
+            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}[1~12].png:100
         [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}2.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}3.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}4.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}5.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}6.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}7.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}8.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}9.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}10.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}11.png
-        [/frame]
-        [frame]
-            duration=100
-            image={BASE_IMAGE_NAME}-ne-{TAIL_IMAGE_NAME}12.png
-        [/frame]
     [/else]
 #enddef
 
@@ -673,56 +187,14 @@
         [if]
             direction=s,se,sw
             [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-se-die1.png
+                image={BASE_IMAGE_NAME}-se-die[1~4,3,4].png:100
             [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-se-die2.png
-            [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-se-die3.png
-            [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-se-die4.png
-            [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-se-die3.png
-            [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-se-die4.png
-            [/frame]
         [/if]
         [else]
             direction=n,ne,nw
             [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-ne-die1.png
+                image={BASE_IMAGE_NAME}-ne-die[1~4,3,4].png:100
             [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-ne-die2.png
-            [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-ne-die3.png
-            [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-ne-die4.png
-            [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-ne-die3.png
-            [/frame]
-            [frame]
-                duration=100
-                image={BASE_IMAGE_NAME}-ne-die4.png
-            [/frame]
         [/else]
     [/death]
 #enddef
@@ -733,56 +205,14 @@
         [if]
             direction=s,se,sw
             [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob1.png
+                image={BASE_IMAGE_NAME}-se-bob[1~6].png:200
             [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob2.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob3.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob4.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob5.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob6.png
-            [/frame]
         [/if]
         [else]
             direction=n,ne,nw
             [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob1.png
+                image={BASE_IMAGE_NAME}-ne-bob[1~6].png:200
             [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob2.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob3.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob4.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob5.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob6.png
-            [/frame]
         [/else]
     [/standing_anim]
 #enddef
@@ -793,72 +223,14 @@
         [if]
             direction=s,se,sw
             [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob1.png
+                image={BASE_IMAGE_NAME}-se-bob[1~8].png:200
             [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob2.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob3.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob4.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob5.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob6.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob7.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-se-bob8.png
-            [/frame]
         [/if]
         [else]
             direction=n,ne,nw
             [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob1.png
+                image={BASE_IMAGE_NAME}-ne-bob[1~8].png:200
             [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob2.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob3.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob4.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob5.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob6.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob7.png
-            [/frame]
-            [frame]
-                duration=200
-                image={BASE_IMAGE_NAME}-ne-bob8.png
-            [/frame]
         [/else]
     [/standing_anim]
 #enddef
@@ -869,72 +241,14 @@
         [if]
             direction=s,se,sw
             [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run1.png
+                image={BASE_IMAGE_NAME}-se-run[1~8].png:50
             [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run2.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run3.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run4.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run5.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run6.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run7.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run8.png
-            [/frame]
         [/if]
         [else]
             direction=n,ne,nw
             [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run1.png
+                image={BASE_IMAGE_NAME}-ne-run[1~8].png:50
             [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run2.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run3.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run4.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run5.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run6.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run7.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run8.png
-            [/frame]
         [/else]
     [/movement_anim]
 #enddef
@@ -945,41 +259,8 @@
         [if]
             direction=s,se,sw
             [frame]
-                duration=67
-                image={BASE_IMAGE_NAME}-se-run1.png
+                image={BASE_IMAGE_NAME}-se-run[1~9].png:67
             [/frame]
-            [frame]
-                duration=67
-                image={BASE_IMAGE_NAME}-se-run2.png
-            [/frame]
-            [frame]
-                duration=66
-                image={BASE_IMAGE_NAME}-se-run3.png
-            [/frame]
-            [frame]
-                duration=67
-                image={BASE_IMAGE_NAME}-se-run4.png
-            [/frame]
-            [frame]
-                duration=67
-                image={BASE_IMAGE_NAME}-se-run5.png
-            [/frame]
-            [frame]
-                duration=66
-                image={BASE_IMAGE_NAME}-se-run6.png
-            [/frame]
-            [frame]
-                duration=67
-                image={BASE_IMAGE_NAME}-se-run7.png
-            [/frame]
-            [frame]
-                duration=67
-                image={BASE_IMAGE_NAME}-se-run8.png
-            [/frame]
-            [frame]
-                duration=66
-                image={BASE_IMAGE_NAME}-se-run9.png
-            [/frame]
         [/if]
     [/movement_anim]
 #enddef
@@ -990,104 +271,14 @@
         [if]
             direction=s,se,sw
             [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run1.png
+                image={BASE_IMAGE_NAME}-se-run[1~12].png:50
             [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run2.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run3.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run4.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run5.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run6.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run7.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run8.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run9.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run10.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run11.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-se-run12.png
-            [/frame]
         [/if]
         [else]
             direction=n,ne,nw
             [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run1.png
+                image={BASE_IMAGE_NAME}-ne-run[1~12].png:50
             [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run2.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run3.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run4.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run5.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run6.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run7.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run8.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run9.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run10.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run11.png
-            [/frame]
-            [frame]
-                duration=50
-                image={BASE_IMAGE_NAME}-ne-run12.png
-            [/frame]
         [/else]
     [/movement_anim]
 #enddef
Index: data/core/macros/animation-utils.cfg
===================================================================
--- data/core/macros/animation-utils.cfg	(revision 56322)
+++ data/core/macros/animation-utils.cfg	(working copy)
@@ -30,38 +30,28 @@
     [leading_anim]
         start_time=-126
         [frame]
-            duration=1
-            image={HALFWAYS_IMAGE}
+            image={HALFWAYS_IMAGE}:1
         [/frame]
         [frame]
-            duration=100
-            image={FULL_IMAGE}
+            image={FULL_IMAGE}:250
         [/frame]
         [frame]
-            duration=150
-            image={FULL_IMAGE}
+            image={HALFWAYS_IMAGE}:1
         [/frame]
-        [frame]
-            duration=1
-            image={HALFWAYS_IMAGE}
-        [/frame]
 
+        halo_start_time=-120
         [halo_frame]
-            begin=-120
-            end=-100
+            duration=20
             halo=""     # Deliberate null image ref.
             # Intended to keep the next image from persisting onscreen.
             halo_x,halo_y={OFFSET_POSITION}
         [/halo_frame]
         [halo_frame]
-            begin=-100
-            end=160
             halo="halo/misc/leadership-flare-[1~13].png:20"
             halo_x,halo_y={OFFSET_POSITION}
         [/halo_frame]
         [halo_frame]
-            begin=160
-            end=200
+            duration=40
             halo=""     # Deliberate null image ref.
             # Intended to keep the previous image from persisting onscreen.
             halo_x,halo_y={OFFSET_POSITION}
@@ -75,31 +65,26 @@
     [defend]
         start_time=-126
         [frame]
-            duration=1
-            image={BASE_IMAGE}
+            image={BASE_IMAGE}:1
         [/frame]
         [frame]
-            duration=100
-            image={REACTION_IMAGE}
+            image={REACTION_IMAGE}:100
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image={REACTION_IMAGE}
+                image={REACTION_IMAGE}:150
                 sound={HIT_SOUND}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image={REACTION_IMAGE}
+                image={REACTION_IMAGE}:150
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image={BASE_IMAGE}
+            image={BASE_IMAGE}:1
         [/frame]
     [/defend]
 #enddef
@@ -112,31 +97,26 @@
         start_time=-126
         {FILTER}
         [frame]
-            duration=1
-            image={BASE_IMAGE}
+            image={BASE_IMAGE}:1
         [/frame]
         [frame]
-            duration=100
-            image={REACTION_IMAGE}
+            image={REACTION_IMAGE}:100
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image={REACTION_IMAGE}
+                image={REACTION_IMAGE}:150
                 sound={HIT_SOUND}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image={REACTION_IMAGE}
+                image={REACTION_IMAGE}:150
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image={BASE_IMAGE}
+            image={BASE_IMAGE}:1
         [/frame]
     [/defend]
 #enddef
@@ -151,31 +131,26 @@
             range={RANGE}
         [/filter_attack]
         [frame]
-            duration=1
-            image={BASE_IMAGE}
+            image={BASE_IMAGE}:1
         [/frame]
         [frame]
-            duration=100
-            image={REACTION_IMAGE}
+            image={REACTION_IMAGE}:100
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image={REACTION_IMAGE}
+                image={REACTION_IMAGE}:150
                 sound={HIT_SOUND}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image={REACTION_IMAGE}
+                image={REACTION_IMAGE}:150
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image={BASE_IMAGE}
+            image={BASE_IMAGE}:1
         [/frame]
     [/defend]
 #enddef
@@ -185,62 +160,52 @@
         direction=sw,s,se
         start_time=-126
         [frame]
-            duration=1
-            image={BASE_SE_IMAGE}
+            image={BASE_SE_IMAGE}:1
         [/frame]
         [frame]
-            duration=100
-            image={REACTION_SE_IMAGE}
+            image={REACTION_SE_IMAGE}:100
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image={REACTION_SE_IMAGE}
+                image={REACTION_SE_IMAGE}:150
                 sound={HITSOUND}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image={REACTION_SE_IMAGE}
+                image={REACTION_SE_IMAGE}:150
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image={BASE_SE_IMAGE}
+            image={BASE_SE_IMAGE}:1
         [/frame]
     [/defend]
     [defend]
         direction=nw,n,ne
         start_time=-126
         [frame]
-            duration=1
-            image={BASE_NE_IMAGE}
+            image={BASE_NE_IMAGE}:1
         [/frame]
         [frame]
-            duration=100
-            image={REACTION_NE_IMAGE}
+            image={REACTION_NE_IMAGE}:100
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image={REACTION_NE_IMAGE}
+                image={REACTION_NE_IMAGE}:150
                 sound={HITSOUND}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image={REACTION_NE_IMAGE}
+                image={REACTION_NE_IMAGE}:150
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image={BASE_NE_IMAGE}
+            image={BASE_NE_IMAGE}:1
         [/frame]
     [/defend]
 #enddef
@@ -253,31 +218,26 @@
         [/filter_attack]
         start_time=-126
         [frame]
-            duration=1
-            image={BASE_SE_IMAGE}
+            image={BASE_SE_IMAGE}:1
         [/frame]
         [frame]
-            duration=100
-            image={REACTION_SE_IMAGE}
+            image={REACTION_SE_IMAGE}:100
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image={REACTION_SE_IMAGE}
+                image={REACTION_SE_IMAGE}:150
                 sound={HITSOUND}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image={REACTION_SE_IMAGE}
+                image={REACTION_SE_IMAGE}:150
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image={BASE_SE_IMAGE}
+            image={BASE_SE_IMAGE}:1
         [/frame]
     [/defend]
     [defend]
@@ -287,31 +247,26 @@
         [/filter_attack]
         start_time=-126
         [frame]
-            duration=1
-            image={BASE_NE_IMAGE}
+            image={BASE_NE_IMAGE}:1
         [/frame]
         [frame]
-            duration=100
-            image={REACTION_NE_IMAGE}
+            image={REACTION_NE_IMAGE}:100
         [/frame]
         [if]
             hits=hit
             [frame]
-                duration=150
-                image={REACTION_NE_IMAGE}
+                image={REACTION_NE_IMAGE}:150
                 sound={HITSOUND}
             [/frame]
         [/if]
         [else]
             hits=miss,kill
             [frame]
-                duration=150
-                image={REACTION_NE_IMAGE}
+                image={REACTION_NE_IMAGE}:150
             [/frame]
         [/else]
         [frame]
-            duration=1
-            image={BASE_NE_IMAGE}
+            image={BASE_NE_IMAGE}:1
         [/frame]
     [/defend]
 #enddef
@@ -430,83 +385,21 @@
     [if]
         direction=n,ne,nw
 
+        missile_start_time=-300
         [missile_frame]
-            begin=-300
-            end=-230
-            image="projectiles/wailprojectile-n-1.png"
-            image_diagonal="projectiles/wailprojectile-ne-1.png"
+            image="projectiles/wailprojectile-n-[1~6].png:[70*2,160,40*3]"
+            image_diagonal="projectiles/wailprojectile-ne-[1~6].png:[70*2,160,40*3]"
         [/missile_frame]
-        [missile_frame]
-            begin=-230
-            end=-160
-            image="projectiles/wailprojectile-n-2.png"
-            image_diagonal="projectiles/wailprojectile-ne-2.png"
-        [/missile_frame]
-        [missile_frame]
-            begin=-160
-            end=0
-            image="projectiles/wailprojectile-n-3.png"
-            image_diagonal="projectiles/wailprojectile-ne-3.png"
-        [/missile_frame]
-        [missile_frame]
-            begin=0
-            end=40
-            image="projectiles/wailprojectile-n-4.png"
-            image_diagonal="projectiles/wailprojectile-ne-4.png"
-        [/missile_frame]
-        [missile_frame]
-            begin=40
-            end=80
-            image="projectiles/wailprojectile-n-5.png"
-            image_diagonal="projectiles/wailprojectile-ne-5.png"
-        [/missile_frame]
-        [missile_frame]
-            begin=80
-            end=120
-            image="projectiles/wailprojectile-n-6.png"
-            image_diagonal="projectiles/wailprojectile-ne-6.png"
-        [/missile_frame]
     [/if]
     [else]
         direction=s,se,sw
         ### The price of asymmetrical projectiles - here, we use a conditional because the game automatically flips the images for the south frame.  We have a separate set of images for the south part, which are not only flipped vertically, but also have their angle corrected for the sw direction.
 
+        missile_start_time=-300
         [missile_frame]
-            begin=-300
-            end=-230
-            image="projectiles/wailprojectile-s-1.png"
-            image_diagonal="projectiles/wailprojectile-se-1.png"
+            image="projectiles/wailprojectile-s-[1~6].png:[70*2,160,40*3]"
+            image_diagonal="projectiles/wailprojectile-se-[1~6].png:[70*2,160,40*3]"
         [/missile_frame]
-        [missile_frame]
-            begin=-230
-            end=-160
-            image="projectiles/wailprojectile-s-2.png"
-            image_diagonal="projectiles/wailprojectile-se-2.png"
-        [/missile_frame]
-        [missile_frame]
-            begin=-160
-            end=0
-            image="projectiles/wailprojectile-s-3.png"
-            image_diagonal="projectiles/wailprojectile-se-3.png"
-        [/missile_frame]
-        [missile_frame]
-            begin=0
-            end=40
-            image="projectiles/wailprojectile-s-4.png"
-            image_diagonal="projectiles/wailprojectile-se-4.png"
-        [/missile_frame]
-        [missile_frame]
-            begin=40
-            end=80
-            image="projectiles/wailprojectile-s-5.png"
-            image_diagonal="projectiles/wailprojectile-se-5.png"
-        [/missile_frame]
-        [missile_frame]
-            begin=80
-            end=120
-            image="projectiles/wailprojectile-s-6.png"
-            image_diagonal="projectiles/wailprojectile-se-6.png"
-        [/missile_frame]
     [/else]
 #enddef
 
@@ -535,11 +428,13 @@
 
 #define MISSILE_FRAME_FIRE_BREATH N_OFFSET_POSITION S_OFFSET_POSITION N_DIAGONAL_OFFSET_POSITION S_DIAGONAL_OFFSET_POSITION
     # Animate a projectile for a fire-breath attack.
+
+    missile_start_time=-400
+
     [if]
         direction=n
 
         [missile_frame]
-            begin=-400
             halo=projectiles/fire-breath-n-[1~5].png:80
             halo_x,halo_y={N_OFFSET_POSITION}
         [/missile_frame]
@@ -548,7 +443,6 @@
         direction=s
 
         [missile_frame]
-            begin=-400
             halo=projectiles/fire-breath-s-[1~5].png:80
             halo_x,halo_y={S_OFFSET_POSITION}
         [/missile_frame]
@@ -557,7 +451,6 @@
         direction=ne,nw
 
         [missile_frame]
-            begin=-400
             halo=projectiles/fire-breath-ne-[1~5].png:80
             halo_x,halo_y={N_DIAGONAL_OFFSET_POSITION}
         [/missile_frame]
@@ -566,7 +459,6 @@
         direction=se,sw
 
         [missile_frame]
-            begin=-400
             halo=projectiles/fire-breath-se-[1~5].png:80
             halo_x,halo_y={S_DIAGONAL_OFFSET_POSITION}
         [/missile_frame]
@@ -575,8 +467,8 @@
 
 #define MISSILE_FRAME_FIRE_BREATH_N OFFSET_POSITION
     # Animate a projectile for a fire-breath attack.
+    missile_start_time=-400
     [missile_frame]
-        begin=-400
         halo=projectiles/fire-breath-n-[1~5].png:80
         halo_x,halo_y={OFFSET_POSITION}
     [/missile_frame]
@@ -584,8 +476,8 @@
 
 #define MISSILE_FRAME_FIRE_BREATH_S OFFSET_POSITION
     # Animate a projectile for a fire-breath attack.
+    missile_start_time=-400
     [missile_frame]
-        begin=-400
         halo=projectiles/fire-breath-s-[1~5].png:80
         halo_x,halo_y={OFFSET_POSITION}
     [/missile_frame]
@@ -593,8 +485,8 @@
 
 #define MISSILE_FRAME_FIRE_BREATH_N_DIAGONAL OFFSET_POSITION
     # Animate a projectile for a fire-breath attack.
+    missile_start_time=-400
     [missile_frame]
-        begin=-400
         halo=projectiles/fire-breath-ne-[1~5].png:80
         halo_x,halo_y={OFFSET_POSITION}
     [/missile_frame]
@@ -602,8 +494,8 @@
 
 #define MISSILE_FRAME_FIRE_BREATH_S_DIAGONAL OFFSET_POSITION
     # Animate a projectile for a fire-breath attack.
+    missile_start_time=-400
     [missile_frame]
-        begin=-400
         halo=projectiles/fire-breath-se-[1~5].png:80
         halo_x,halo_y={OFFSET_POSITION}
     [/missile_frame]
@@ -611,62 +503,35 @@
 
 #define MISSILE_FRAME_FAERIE_FIRE
     # Animate a projectile for a faerie-fire attack.
+    missile_start_time=-500
     [missile_frame]
-        begin=-500
-        end=-350
+        duration=250
         image="projectiles/icemissile-n-1.png"
         image_diagonal="projectiles/icemissile-ne-1.png"
         halo=halo/elven/ice-halo[1~3].png:[100,100,25]
         halo_x,halo_y=0,0
     [/missile_frame]
     [missile_frame]
-        begin=-350
-        end=-200
+        duration=150
         image="projectiles/icemissile-n-2.png"
         image_diagonal="projectiles/icemissile-ne-2.png"
         halo=halo/elven/ice-halo[3,4].png:75
         halo_x,halo_y=0,0
     [/missile_frame]
     [missile_frame]
-        begin=-200
-        end=-50
+        duration=150
         image="projectiles/icemissile-n-3.png"
         image_diagonal="projectiles/icemissile-ne-3.png"
-        halo=halo/elven/ice-halo[5,1,2].png:[100,100,50]
+        halo=halo/elven/ice-halo[5,1,2].png:50
         halo_x,halo_y=0,0
     [/missile_frame]
     [missile_frame]
-        begin=-50
-        end=0
-        image="projectiles/icemissile-n-4.png"
-        image_diagonal="projectiles/icemissile-ne-4.png"
-        halo=halo/elven/ice-halo6.png
+        duration=200
+        image="projectiles/icemissile-n-[4~7].png"
+        image_diagonal="projectiles/icemissile-ne-[4~7].png"
+        halo=halo/elven/ice-halo[6~9].png
         halo_x,halo_y=0,0
     [/missile_frame]
-    [missile_frame]
-        begin=25
-        end=75
-        image="projectiles/icemissile-n-5.png"
-        image_diagonal="projectiles/icemissile-ne-5.png"
-        halo=halo/elven/ice-halo7.png
-        halo_x,halo_y=0,0
-    [/missile_frame]
-    [missile_frame]
-        begin=75
-        end=125
-        image="projectiles/icemissile-n-6.png"
-        image_diagonal="projectiles/icemissile-ne-6.png"
-        halo=halo/elven/ice-halo8.png
-        halo_x,halo_y=0,0
-    [/missile_frame]
-    [missile_frame]
-        begin=125
-        end=175
-        image="projectiles/icemissile-n-7.png"
-        image_diagonal="projectiles/icemissile-ne-7.png"
-        halo=halo/elven/ice-halo9.png
-        halo_x,halo_y=0,0
-    [/missile_frame]
 #enddef
 
 #define MISSILE_FRAME_FIREBALL
@@ -679,38 +544,11 @@
         hits=yes
 
         [missile_frame]
-            duration=40
-            image="projectiles/fireball-n-1.png"
-            image_diagonal="projectiles/fireball-nw-1.png"
-            offset=0.0~0.10
+            image="projectiles/fireball-[n-1,n-2,n,n-2,n-1].png:[40,100,125,55,30]"
+            image_diagonal="projectiles/fireball-[nw-1,nw-2,nw,nw-2,nw-1].png:[40,100,125,55,30]"
+            offset=0.0~0.9
         [/missile_frame]
-        [missile_frame]
-            duration=100
-            image="projectiles/fireball-n-2.png"
-            image_diagonal="projectiles/fireball-nw-2.png"
-            offset=0.1~0.30
-        [/missile_frame]
-        [missile_frame]
-            duration=125
-            image="projectiles/fireball-n.png"
-            image_diagonal="projectiles/fireball-nw.png"
-            offset=0.3~0.60
-        [/missile_frame]
-        [missile_frame]
-            duration=55
-            image="projectiles/fireball-n-2.png"
-            image_diagonal="projectiles/fireball-nw-2.png"
-            offset=0.7~0.8
-        [/missile_frame]
-        [missile_frame]
-            duration=30
-            image="projectiles/fireball-n-1.png"
-            image_diagonal="projectiles/fireball-nw-1.png"
-            offset=0.8~0.9
-        [/missile_frame]
-
 		[missile_frame]
-            duration=960
             halo="projectiles/fireball-impact-[1~16].png:60"
             offset=1.0
         [/missile_frame]
@@ -720,38 +558,11 @@
         hits=yes
 
         [missile_frame]
-            duration=40
-            image="projectiles/fireball-n-1.png"
-            image_diagonal="projectiles/fireball-nw-1.png"
-            offset=0.0~0.10
+            image="projectiles/fireball-[n-1,n-2,n,n-2,n-1].png:[40,100,125,55,30]"
+            image_diagonal="projectiles/fireball-[nw-1,nw-2,nw,nw-2,nw-1].png:[40,100,125,55,30]"
+            offset=0.0~0.9
         [/missile_frame]
-        [missile_frame]
-            duration=100
-            image="projectiles/fireball-n-2.png"
-            image_diagonal="projectiles/fireball-nw-2.png"
-            offset=0.1~0.30
-        [/missile_frame]
-        [missile_frame]
-            duration=125
-            image="projectiles/fireball-n.png"
-            image_diagonal="projectiles/fireball-nw.png"
-            offset=0.3~0.60
-        [/missile_frame]
-        [missile_frame]
-            duration=55
-            image="projectiles/fireball-n-2.png"
-            image_diagonal="projectiles/fireball-nw-2.png"
-            offset=0.7~0.8
-        [/missile_frame]
-        [missile_frame]
-            duration=30
-            image="projectiles/fireball-n-1.png"
-            image_diagonal="projectiles/fireball-nw-1.png"
-            offset=0.8~0.9
-        [/missile_frame]
-
 		[missile_frame]
-            duration=960
             halo="projectiles/fireball-impact-[1~16].png~FL(vert):60"
             offset=1.0
         [/missile_frame]
@@ -789,19 +600,18 @@
 #enddef
 
 #define MISSILE_FRAME_ICE
+    missile_start_time=-200
     [if]
         hits=yes
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/whitemissile-n.png"
             image_diagonal="projectiles/whitemissile-ne.png"
             sound=magicmissile.wav
             offset=0.0~0.8
         [/missile_frame]
         [missile_frame]
-            begin=0
-            end=400
+            duration=400
             halo="projectiles/whitemissile-impact-[1~8].png:50"
             offset=0.8,0.92,0.94,0.96,0.98,1.0,1.02,1.04
         [/missile_frame]
@@ -809,8 +619,7 @@
     [else]
         hits=no
         [missile_frame]
-            begin=-200
-            end=0
+            duration=200
             image="projectiles/whitemissile-n.png"
             image_diagonal="projectiles/whitemissile-ne.png"
             sound=magicmissile.wav
@@ -822,97 +631,30 @@
 
 #define MISSILE_FRAME_HATCHET
     # Animate a projectile for a thrown-hatchet attack.
+    missile_start_time=-200
     [missile_frame]
-        begin=-200
-        end=-150
-        image="projectiles/hatchet-2.png"
-        image_diagonal="projectiles/hatchet-2.png"
+        duration=200
+        image="projectiles/hatchet-[2~4,1].png"
+        image_diagonal="projectiles/hatchet-[2~4,1].png"
     [/missile_frame]
-    [missile_frame]
-        begin=-150
-        end=-100
-        image="projectiles/hatchet-3.png"
-        image_diagonal="projectiles/hatchet-3.png"
-    [/missile_frame]
-    [missile_frame]
-        begin=-100
-        end=-50
-        image="projectiles/hatchet-4.png"
-        image_diagonal="projectiles/hatchet-4.png"
-    [/missile_frame]
-    [missile_frame]
-        begin=-50
-        end=0
-        image="projectiles/hatchet-1.png"
-        image_diagonal="projectiles/hatchet-1.png"
-    [/missile_frame]
 #enddef
 
 #define FIRE_BURST_SMALL
+    missile_start_time=0
     [missile_frame]
-        begin=0
-        end=75
-        image="projectiles/fire-burst-small-1.png"
-        image_diagonal="projectiles/fire-burst-small-1.png"
-        offset=0.8
+        duration=600
+        image="projectiles/fire-burst-small-[1~8].png"
+        image_diagonal="projectiles/fire-burst-small-[1~8].png"
+        offset=0.8~1.0
     [/missile_frame]
-    [missile_frame]
-        begin=75
-        end=150
-        image="projectiles/fire-burst-small-2.png"
-        image_diagonal="projectiles/fire-burst-small-2.png"
-        offset=0.83
-    [/missile_frame]
-    [missile_frame]
-        begin=150
-        end=225
-        image="projectiles/fire-burst-small-3.png"
-        image_diagonal="projectiles/fire-burst-small-3.png"
-        offset=0.86
-    [/missile_frame]
-    [missile_frame]
-        begin=225
-        end=300
-        image="projectiles/fire-burst-small-4.png"
-        image_diagonal="projectiles/fire-burst-small-4.png"
-        offset=0.89
-    [/missile_frame]
-    [missile_frame]
-        begin=300
-        end=375
-        image="projectiles/fire-burst-small-5.png"
-        image_diagonal="projectiles/fire-burst-small-5.png"
-        offset=0.92
-    [/missile_frame]
-    [missile_frame]
-        begin=375
-        end=450
-        image="projectiles/fire-burst-small-6.png"
-        image_diagonal="projectiles/fire-burst-small-6.png"
-        offset=0.95
-    [/missile_frame]
-    [missile_frame]
-        begin=450
-        end=525
-        image="projectiles/fire-burst-small-7.png"
-        image_diagonal="projectiles/fire-burst-small-7.png"
-        offset=0.98
-    [/missile_frame]
-    [missile_frame]
-        begin=525
-        end=600
-        image="projectiles/fire-burst-small-8.png"
-        image_diagonal="projectiles/fire-burst-small-8.png"
-        offset=1.0
-    [/missile_frame]
 #enddef
 
 #define LIGHTNING_BOLT DIRECTION_NUMBER
+    missile_start_time=-250
     [if]
         direction=sw,s,se
 
         [missile_frame]
-            begin=-250
             halo=halo/lightning-bolt-{DIRECTION_NUMBER}-[1~4].png~FL(vert):100
             halo_y=-125
             offset=1.0
@@ -922,7 +664,6 @@
         direction=nw,n,ne
 
         [missile_frame]
-            begin=-250
             halo=halo/lightning-bolt-{DIRECTION_NUMBER}-[1~4].png:100
             halo_y=-125
             offset=1.0
@@ -1049,46 +790,36 @@
 #enddef
 
 #define MISSILE_FRAME_STONE_HIT OFFSET_X OFFSET_Y
+    sling_stone_start_time=-201
     [sling_stone_frame]
-        begin=-201
-        end=-200
-        image="misc/blank-hex.png"
+        image="misc/blank-hex.png:1"
     [/sling_stone_frame]
     [sling_stone_frame]
-        begin=-200
-        end=0
-        halo="projectiles/stone.png"
+        halo="projectiles/stone.png:200"
         halo_x={OFFSET_X}~0
         halo_y={OFFSET_Y}~0
         y=0~-5,-5~-8,-8~-9,-9~-10,-10~-9,-9~-8,-8~-5,-5~0
         offset=0.0~1.0
     [/sling_stone_frame]
     [sling_stone_frame]
-        begin=0
-        end=1
-        image="misc/blank-hex.png"
+        image="misc/blank-hex.png:1"
     [/sling_stone_frame]
 #enddef
 
 #define MISSILE_FRAME_STONE_MISS OFFSET_X OFFSET_Y
+    sling_stone_start_time=-201
     [sling_stone_frame]
-        begin=-201
-        end=-200
-        image="misc/blank-hex.png"
+        image="misc/blank-hex.png:1"
     [/sling_stone_frame]
     [sling_stone_frame]
-        begin=-200
-        end=100
-        halo="projectiles/stone.png"
+        halo="projectiles/stone.png:300"
         halo_x={OFFSET_X}~0
         halo_y={OFFSET_Y}~0
         y=0~-5,-5~-8,-8~-9,-9~-10,-10~-9,-9~-8,-8~-5,-5~0
         offset=0.0~1.5
     [/sling_stone_frame]
     [sling_stone_frame]
-        begin=100
-        end=101
-        image="misc/blank-hex.png"
+        image="misc/blank-hex.png:1"
     [/sling_stone_frame]
 #enddef
 
@@ -1107,113 +838,35 @@
         terrain_type={DRAKE_UNWALKABLE_TERRAINS}
         submerge=0.01
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-1.png"
+            image="units/drakes/{DRAKE_NAME}-fly-[1~5,4].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-2.png"
+            image="units/drakes/{DRAKE_NAME}-fly-[3,2]-upstroke.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-3-upstroke.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-2-upstroke.png"
-        [/frame]
     [/standing_anim]
     [pre_movement_anim]
         start_time=0
         terrain_type=!,{DRAKE_UNWALKABLE_TERRAINS}
         [frame]
-            duration=50
-            image="units/drakes/{DRAKE_NAME}-takeoff-1.png"
+            image="units/drakes/{DRAKE_NAME}-takeoff-[1~4].png:50"
         [/frame]
-        [frame]
-            duration=50
-            image="units/drakes/{DRAKE_NAME}-takeoff-2.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/drakes/{DRAKE_NAME}-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=50
-            image="units/drakes/{DRAKE_NAME}-takeoff-4.png"
-        [/frame]
     [/pre_movement_anim]
     [movement_anim]
         start_time=0
         submerge=0.01
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-1.png"
+            image="units/drakes/{DRAKE_NAME}-fly-[1~5,4].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-2.png"
+            image="units/drakes/{DRAKE_NAME}-fly-[3,2]-upstroke.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-3-upstroke.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-2-upstroke.png"
-        [/frame]
     [/movement_anim]
     [post_movement_anim]
         terrain_type=!,{DRAKE_UNWALKABLE_TERRAINS}
         start_time=0
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-4.png"
+            image="units/drakes/{DRAKE_NAME}-takeoff-[4~1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-1.png"
-        [/frame]
     [/post_movement_anim]
 #enddef
 
@@ -1278,46 +931,15 @@
 
         start_time=-900
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
+            image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png:100"
             sound=flame-big.ogg
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
+            image="units/drakes/{DRAKE_NAME}-fire-inhale-[2~4,2].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
+            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-[1~3,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-1.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-1.png"
-        [/frame]
     [/attack_anim]
 
     [attack_anim]
@@ -1372,46 +994,15 @@
 
         start_time=-900
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
+            image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png:100"
             sound=flame-big-miss.ogg
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
+            image="units/drakes/{DRAKE_NAME}-fire-inhale-[2~4,2].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
+            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-[1~3,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-1.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-{DIRECTION_SUFFIX}-1.png"
-        [/frame]
     [/attack_anim]
 #enddef
 
@@ -1421,9 +1012,8 @@
             name=fire breath
         [/filter_attack]
         direction=se,sw
+        missile_start_time=-400
         [missile_frame]
-            begin=-400
-            end=100
             halo=projectiles/fire-breath-se-[1~5].png:80
             halo_x,halo_y={OFFSET_POSITION}
         [/missile_frame]
@@ -1447,45 +1037,11 @@
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
+            image="units/drakes/{DRAKE_NAME}-fire-inhale-[1~4,2].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
+            image="units/drakes/{DRAKE_NAME}-fire-se-[1~3,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-1.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-1.png"
-        [/frame]
     [/attack_anim]
 #enddef
 
@@ -1495,9 +1051,8 @@
             name=fire breath
         [/filter_attack]
         direction=ne,nw
+        missile_start_time=-400
         [missile_frame]
-            begin=-400
-            end=100
             halo=projectiles/fire-breath-ne-[1~5].png:80
             halo_x,halo_y={OFFSET_POSITION}
         [/missile_frame]
@@ -1521,45 +1076,11 @@
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
+            image="units/drakes/{DRAKE_NAME}-fire-inhale-[1~4,2].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
+            image="units/drakes/{DRAKE_NAME}-fire-se-[1~3,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-1.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-se-1.png"
-        [/frame]
     [/attack_anim]
 #enddef
 
@@ -1569,9 +1090,8 @@
             name=fire breath
         [/filter_attack]
         direction=s
+        missile_start_time=-400
         [missile_frame]
-            begin=-400
-            end=100
             halo=projectiles/fire-breath-s-[1~5].png:80
             halo_x,halo_y={OFFSET_POSITION}
         [/missile_frame]
@@ -1595,45 +1115,11 @@
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
+            image="units/drakes/{DRAKE_NAME}-fire-inhale-[1~4,2].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
+            image="units/drakes/{DRAKE_NAME}-fire-s-[1~3,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-1.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-1.png"
-        [/frame]
     [/attack_anim]
 #enddef
 
@@ -1643,9 +1129,8 @@
             name=fire breath
         [/filter_attack]
         direction=n
+        missile_start_time=-400
         [missile_frame]
-            begin=-400
-            end=100
             halo=projectiles/fire-breath-n-[1~5].png:80
             halo_x,halo_y={OFFSET_POSITION}
         [/missile_frame]
@@ -1669,45 +1154,11 @@
             [/frame]
         [/else]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
+            image="units/drakes/{DRAKE_NAME}-fire-inhale-[1~4,2].png:100"
         [/frame]
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
+            image="units/drakes/{DRAKE_NAME}-fire-s-[1~3,2,1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-1.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fire-s-1.png"
-        [/frame]
     [/attack_anim]
 #enddef
 
@@ -1715,37 +1166,8 @@
     [movement_anim]
         start_time=0
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-1.png"
+            image="units/drakes/{DRAKE_NAME}-fly-[1~5,4].png:100,units/drakes/{DRAKE_NAME}-fly-[3,2]-upstroke.png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-5.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-4.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-3-upstroke.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-fly-2-upstroke.png"
-        [/frame]
     [/movement_anim]
 #enddef
 
@@ -1754,40 +1176,14 @@
         #landing, only do it when we're not already flying
         terrain_type={DRAKE_UNWALKABLE_TERRAINS}
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-4.png"
+            image="units/drakes/{DRAKE_NAME}-takeoff-[4~1].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-1.png"
-        [/frame]
     [/draw_weapon_anim]
     [sheath_weapon_anim]
         #landing, only do it when we're not already flying
         terrain_type={DRAKE_UNWALKABLE_TERRAINS}
         [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-1.png"
+            image="units/drakes/{DRAKE_NAME}-takeoff-[1~4].png:100"
         [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-2.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-3.png"
-        [/frame]
-        [frame]
-            duration=100
-            image="units/drakes/{DRAKE_NAME}-takeoff-4.png"
-        [/frame]
     [/sheath_weapon_anim]
 #enddef
