diff --git a/assets/xml/objects/object_fd.xml b/assets/xml/objects/object_fd.xml
index 750f80be4d..b15a22eef1 100644
--- a/assets/xml/objects/object_fd.xml
+++ b/assets/xml/objects/object_fd.xml
@@ -1,35 +1,45 @@
 
     
-        
-        
-
-        
-        
-        
-        
-
-        
-        
-        
-        
-
-        
-        
-        
-        
-
-        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
         
-        
         
+        
         
-
-        
-        
-        
-        
-
-        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
         
         
         
@@ -48,111 +58,89 @@
         
         
         
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-        
         
-
-        
-        
-
-        
-        
-        
-
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+        
+        
         
+        
         
         
+        
         
+        
+        
         
         
+        
+        
+        
         
         
         
         
+        
+        
         
+        
+        
         
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+        
+        
+
+        
+        
+            
+        
+        
+            
+        
+
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
     
 
diff --git a/assets/xml/objects/object_fd_pal.xml b/assets/xml/objects/object_fd_pal.xml
deleted file mode 100644
index ff91e48e11..0000000000
--- a/assets/xml/objects/object_fd_pal.xml
+++ /dev/null
@@ -1,158 +0,0 @@
-
-    
-        
-        
-
-        
-        
-        
-        
-
-        
-        
-        
-        
-
-        
-        
-        
-        
-
-        
-        
-        
-        
-        
-
-        
-        
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-        
-        
-
-        
-        
-
-        
-        
-        
-
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_goma.xml b/assets/xml/objects/object_goma.xml
index f2429cd2b9..aba349c478 100644
--- a/assets/xml/objects/object_goma.xml
+++ b/assets/xml/objects/object_goma.xml
@@ -1,240 +1,11 @@
 
     
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
+        
         
          
         
          
+         
         
         
         
@@ -249,10 +20,144 @@
         
         
         
-        
 
-        
-        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
+        
+            
+        
+        
 
         
         
@@ -263,16 +168,113 @@
         
 
         
-        
+        
+            
+        
+        
+            
+        
+
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+
+        
+        
+        
+
+        
+        
 
         
-        
+        
             
         
-        
-        
-        
-
-        
+        
+        
+        
     
 
diff --git a/assets/xml/objects/object_goma_pal.xml b/assets/xml/objects/object_goma_pal.xml
deleted file mode 100644
index dbee83f7ca..0000000000
--- a/assets/xml/objects/object_goma_pal.xml
+++ /dev/null
@@ -1,276 +0,0 @@
-
-    
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-         
-        
-         
-        
-        
-        
-         
-         
-         
-        
-        
-        
-        
-         
-        
-        
-        
-        
-
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-
-        
-        
-            
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_kingdodongo.xml b/assets/xml/objects/object_kingdodongo.xml
index 1e0b94cf97..3357d19240 100644
--- a/assets/xml/objects/object_kingdodongo.xml
+++ b/assets/xml/objects/object_kingdodongo.xml
@@ -111,103 +111,111 @@
         
         
         
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+
+        
+            
+        
+        
+            
+        
+
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
             
         
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
             
         
-        
-        
+        
+        
             
         
-        
-        
+        
+        
             
         
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
     
 
diff --git a/assets/xml/objects/object_kingdodongo_pal.xml b/assets/xml/objects/object_kingdodongo_pal.xml
deleted file mode 100644
index b9ec4d4387..0000000000
--- a/assets/xml/objects/object_kingdodongo_pal.xml
+++ /dev/null
@@ -1,213 +0,0 @@
-
-    
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-            
-        
-        
-        
-        
-        
-        
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-            
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_mag.xml b/assets/xml/objects/object_mag.xml
index 59a0613548..9d2c432416 100644
--- a/assets/xml/objects/object_mag.xml
+++ b/assets/xml/objects/object_mag.xml
@@ -1,20 +1,47 @@
 
     
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+        
+            
+        
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+            
+        
+        
+            
+        
     
 
diff --git a/assets/xml/objects/object_mag_ique.xml b/assets/xml/objects/object_mag_ique.xml
deleted file mode 100644
index 3a2bed9682..0000000000
--- a/assets/xml/objects/object_mag_ique.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-    
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_mag_v2.xml b/assets/xml/objects/object_mag_v2.xml
deleted file mode 100644
index 9897422cbd..0000000000
--- a/assets/xml/objects/object_mag_v2.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-    
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_mag_v2_mq.xml b/assets/xml/objects/object_mag_v2_mq.xml
deleted file mode 100644
index 0b14571ca7..0000000000
--- a/assets/xml/objects/object_mag_v2_mq.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-    
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_mag_v3.xml b/assets/xml/objects/object_mag_v3.xml
deleted file mode 100644
index eb95e103be..0000000000
--- a/assets/xml/objects/object_mag_v3.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-    
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_mag_v3_mq.xml b/assets/xml/objects/object_mag_v3_mq.xml
deleted file mode 100644
index b0b54fe739..0000000000
--- a/assets/xml/objects/object_mag_v3_mq.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-    
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_mo.xml b/assets/xml/objects/object_mo.xml
index 9844361f58..b7af7eff47 100644
--- a/assets/xml/objects/object_mo.xml
+++ b/assets/xml/objects/object_mo.xml
@@ -1,184 +1,27 @@
 
     
-        
-        
+        
 
-        
-        
-            
-        
-        
-            
-        
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
+        
         
             
         
         
+
+        
+            
+        
+         
+
+        
+
+        
+            
+        
+        
+        
+
+        
         
         
         
@@ -189,35 +32,200 @@
             
         
 
+        
+        
+            
+        
+        
+            
+        
+
         
-        
+        
             
         
-        
+        
 
-        
+        
+        
+        
 
-        
-        
+        
+        
             
         
-        
-
-        
+        
             
         
-        
-        
-        
+        
+        
 
-        
+        
             
         
 
-        
-        
-        
-        
-        
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+
+        
+
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+
+        
     
 
diff --git a/assets/xml/objects/object_mo_pal.xml b/assets/xml/objects/object_mo_pal.xml
deleted file mode 100644
index 71078c6a95..0000000000
--- a/assets/xml/objects/object_mo_pal.xml
+++ /dev/null
@@ -1,223 +0,0 @@
-
-    
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-            
-        
-        
-        
-        
-        
-            
-        
-        
-        
-            
-        
-
-        
-        
-            
-        
-        
-
-        
-
-        
-            
-        
-        
-        
-
-        
-            
-        
-        
-        
-        
-
-        
-            
-        
-
-        
-        
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_tw.xml b/assets/xml/objects/object_tw.xml
index 922d28ac65..435a064824 100644
--- a/assets/xml/objects/object_tw.xml
+++ b/assets/xml/objects/object_tw.xml
@@ -192,11 +192,55 @@
         
         
 
-        
-        
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+        
             
         
 
+        
         
         
         
@@ -218,11 +262,55 @@
         
         
 
-        
-        
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+            
+        
+        
+        
             
         
 
+        
         
         
         
@@ -430,9 +518,6 @@
         
         
 
-        
-        
-
         
          
          
@@ -566,6 +651,7 @@
         
         
         
+        
         
         
         
@@ -648,71 +734,77 @@
         
 
         
-        
+        
+            
+        
+        
+            
+        
 
         
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
 
         
-        
+        
+        
 
         
-         
-         
-         
-         
-         
-         
-         
-         
+         
+         
+         
+         
+         
+         
+         
+         
 
         
-        
+        
             
         
-        
-        
+        
+        
     
 
diff --git a/assets/xml/objects/object_tw_pal.xml b/assets/xml/objects/object_tw_pal.xml
deleted file mode 100644
index 2b777f3d3a..0000000000
--- a/assets/xml/objects/object_tw_pal.xml
+++ /dev/null
@@ -1,807 +0,0 @@
-
-    
-        
-         
-         
-         
-         
-         
-         
-         
-         
-         
-         
-         
-         
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-         
-         
-         
-         
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-
-        
-        
-        
-            
-        
-         
-
-        
-        
-        
-        
-            
-        
-         
-
-        
-        
-
-        
-        
-            
-        
-         
-
-        
-        
-        
-        
-            
-        
-         
-
-        
-        
-            
-        
-        
-         
-        
-
-        
-        
-            
-        
-         
-
-        
-        
-            
-        
-        
-        
-            
-        
-        
-        
-         
-
-        
-        
-
-        
-        
-            
-        
-
-        
-        
-            
-        
-         
-
-        
-        
-        
-        
-            
-        
-         
-
-        
-        
-        
-        
-            
-        
-         
-        
-        
-        
-            
-        
-         
-
-        
-        
-            
-        
-         
-
-        
-        
-            
-        
-        
-            
-        
-        
-        
-        
-            
-        
-        
-            
-        
-        
-        
-
-        
-        
-
-        
-        
-            
-        
-         
-
-        
-        
-
-        
-        
-            
-        
-         
-
-        
-        
-
-        
-        
-            
-        
-         
-        
-            
-        
-         
-        
-            
-        
-         
-        
-            
-        
-         
-
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-
-        
-         
-         
-         
-         
-         
-
-        
-        
-        
-        
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-        
-
-        
-         
-         
-         
-         
-         
-         
-         
-         
-
-        
-        
-            
-        
-        
-        
-    
-
diff --git a/assets/xml/objects/object_xc.xml b/assets/xml/objects/object_xc.xml
index f6f30b2f44..f08c91cb8d 100644
--- a/assets/xml/objects/object_xc.xml
+++ b/assets/xml/objects/object_xc.xml
@@ -1,146 +1,157 @@
 
     
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-            
-        
-        
-            
-        
-        
-        
-        
-            
-        
-        
+        
+            
+            
+            
+            
+            
+            
+        
+        
+            
+            
+            
+            
+            
+            
+        
+        
 
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
+        
             
         
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+            
+        
+        
+            
+        
+        
+        
+        
+        
+            
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
     
 
diff --git a/assets/xml/objects/object_xc_pal.xml b/assets/xml/objects/object_xc_pal.xml
deleted file mode 100644
index 7d20f23661..0000000000
--- a/assets/xml/objects/object_xc_pal.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-
-    
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-            
-        
-        
-            
-        
-        
-        
-        
-            
-        
-        
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-            
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-    
-
diff --git a/baseroms/gc-eu-mq-dbg/config.yml b/baseroms/gc-eu-mq-dbg/config.yml
index e457028060..5a0ecdecb3 100644
--- a/baseroms/gc-eu-mq-dbg/config.yml
+++ b/baseroms/gc-eu-mq-dbg/config.yml
@@ -220,7 +220,7 @@ assets:
 - name: objects/object_fa
   xml_path: assets/xml/objects/object_fa.xml
 - name: objects/object_fd
-  xml_path: assets/xml/objects/object_fd_pal.xml
+  xml_path: assets/xml/objects/object_fd.xml
 - name: objects/object_fd2
   xml_path: assets/xml/objects/object_fd2.xml
 - name: objects/object_fhg
@@ -430,7 +430,7 @@ assets:
 - name: objects/object_gol
   xml_path: assets/xml/objects/object_gol.xml
 - name: objects/object_goma
-  xml_path: assets/xml/objects/object_goma_pal.xml
+  xml_path: assets/xml/objects/object_goma.xml
 - name: objects/object_goroiwa
   xml_path: assets/xml/objects/object_goroiwa.xml
 - name: objects/object_gr
@@ -498,7 +498,7 @@ assets:
 - name: objects/object_kibako2
   xml_path: assets/xml/objects/object_kibako2.xml
 - name: objects/object_kingdodongo
-  xml_path: assets/xml/objects/object_kingdodongo_pal.xml
+  xml_path: assets/xml/objects/object_kingdodongo.xml
 - name: objects/object_km1
   xml_path: assets/xml/objects/object_km1.xml
 - name: objects/object_kusa
@@ -522,7 +522,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_v3_mq.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
@@ -566,7 +566,7 @@ assets:
 - name: objects/object_mm
   xml_path: assets/xml/objects/object_mm.xml
 - name: objects/object_mo
-  xml_path: assets/xml/objects/object_mo_pal.xml
+  xml_path: assets/xml/objects/object_mo.xml
 - name: objects/object_mori_hineri1
   xml_path: assets/xml/objects/object_mori_hineri1.xml
 - name: objects/object_mori_hineri1a
@@ -796,7 +796,7 @@ assets:
 - name: objects/object_tsubo
   xml_path: assets/xml/objects/object_tsubo.xml
 - name: objects/object_tw
-  xml_path: assets/xml/objects/object_tw_pal.xml
+  xml_path: assets/xml/objects/object_tw.xml
 - name: objects/object_umajump
   xml_path: assets/xml/objects/object_umajump.xml
 - name: objects/object_vali
@@ -816,7 +816,7 @@ assets:
 - name: objects/object_wood02
   xml_path: assets/xml/objects/object_wood02.xml
 - name: objects/object_xc
-  xml_path: assets/xml/objects/object_xc_pal.xml
+  xml_path: assets/xml/objects/object_xc.xml
 - name: objects/object_yabusame_point
   xml_path: assets/xml/objects/object_yabusame_point.xml
 - name: objects/object_ydan_objects
diff --git a/baseroms/gc-eu-mq/config.yml b/baseroms/gc-eu-mq/config.yml
index 0093015d7e..c6edfbd17d 100644
--- a/baseroms/gc-eu-mq/config.yml
+++ b/baseroms/gc-eu-mq/config.yml
@@ -212,7 +212,7 @@ assets:
 - name: objects/object_fa
   xml_path: assets/xml/objects/object_fa.xml
 - name: objects/object_fd
-  xml_path: assets/xml/objects/object_fd_pal.xml
+  xml_path: assets/xml/objects/object_fd.xml
 - name: objects/object_fd2
   xml_path: assets/xml/objects/object_fd2.xml
 - name: objects/object_fhg
@@ -422,7 +422,7 @@ assets:
 - name: objects/object_gol
   xml_path: assets/xml/objects/object_gol.xml
 - name: objects/object_goma
-  xml_path: assets/xml/objects/object_goma_pal.xml
+  xml_path: assets/xml/objects/object_goma.xml
 - name: objects/object_goroiwa
   xml_path: assets/xml/objects/object_goroiwa.xml
 - name: objects/object_gr
@@ -490,7 +490,7 @@ assets:
 - name: objects/object_kibako2
   xml_path: assets/xml/objects/object_kibako2.xml
 - name: objects/object_kingdodongo
-  xml_path: assets/xml/objects/object_kingdodongo_pal.xml
+  xml_path: assets/xml/objects/object_kingdodongo.xml
 - name: objects/object_km1
   xml_path: assets/xml/objects/object_km1.xml
 - name: objects/object_kusa
@@ -514,7 +514,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_v3_mq.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
@@ -558,7 +558,7 @@ assets:
 - name: objects/object_mm
   xml_path: assets/xml/objects/object_mm.xml
 - name: objects/object_mo
-  xml_path: assets/xml/objects/object_mo_pal.xml
+  xml_path: assets/xml/objects/object_mo.xml
 - name: objects/object_mori_hineri1
   xml_path: assets/xml/objects/object_mori_hineri1.xml
 - name: objects/object_mori_hineri1a
@@ -788,7 +788,7 @@ assets:
 - name: objects/object_tsubo
   xml_path: assets/xml/objects/object_tsubo.xml
 - name: objects/object_tw
-  xml_path: assets/xml/objects/object_tw_pal.xml
+  xml_path: assets/xml/objects/object_tw.xml
 - name: objects/object_umajump
   xml_path: assets/xml/objects/object_umajump.xml
 - name: objects/object_vali
@@ -808,7 +808,7 @@ assets:
 - name: objects/object_wood02
   xml_path: assets/xml/objects/object_wood02.xml
 - name: objects/object_xc
-  xml_path: assets/xml/objects/object_xc_pal.xml
+  xml_path: assets/xml/objects/object_xc.xml
 - name: objects/object_yabusame_point
   xml_path: assets/xml/objects/object_yabusame_point.xml
 - name: objects/object_ydan_objects
diff --git a/baseroms/gc-eu/config.yml b/baseroms/gc-eu/config.yml
index 9aef9891f9..340de8ee15 100644
--- a/baseroms/gc-eu/config.yml
+++ b/baseroms/gc-eu/config.yml
@@ -212,7 +212,7 @@ assets:
 - name: objects/object_fa
   xml_path: assets/xml/objects/object_fa.xml
 - name: objects/object_fd
-  xml_path: assets/xml/objects/object_fd_pal.xml
+  xml_path: assets/xml/objects/object_fd.xml
 - name: objects/object_fd2
   xml_path: assets/xml/objects/object_fd2.xml
 - name: objects/object_fhg
@@ -422,7 +422,7 @@ assets:
 - name: objects/object_gol
   xml_path: assets/xml/objects/object_gol.xml
 - name: objects/object_goma
-  xml_path: assets/xml/objects/object_goma_pal.xml
+  xml_path: assets/xml/objects/object_goma.xml
 - name: objects/object_goroiwa
   xml_path: assets/xml/objects/object_goroiwa.xml
 - name: objects/object_gr
@@ -490,7 +490,7 @@ assets:
 - name: objects/object_kibako2
   xml_path: assets/xml/objects/object_kibako2.xml
 - name: objects/object_kingdodongo
-  xml_path: assets/xml/objects/object_kingdodongo_pal.xml
+  xml_path: assets/xml/objects/object_kingdodongo.xml
 - name: objects/object_km1
   xml_path: assets/xml/objects/object_km1.xml
 - name: objects/object_kusa
@@ -514,7 +514,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_v3.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
@@ -558,7 +558,7 @@ assets:
 - name: objects/object_mm
   xml_path: assets/xml/objects/object_mm.xml
 - name: objects/object_mo
-  xml_path: assets/xml/objects/object_mo_pal.xml
+  xml_path: assets/xml/objects/object_mo.xml
 - name: objects/object_mori_hineri1
   xml_path: assets/xml/objects/object_mori_hineri1.xml
 - name: objects/object_mori_hineri1a
@@ -788,7 +788,7 @@ assets:
 - name: objects/object_tsubo
   xml_path: assets/xml/objects/object_tsubo.xml
 - name: objects/object_tw
-  xml_path: assets/xml/objects/object_tw_pal.xml
+  xml_path: assets/xml/objects/object_tw.xml
 - name: objects/object_umajump
   xml_path: assets/xml/objects/object_umajump.xml
 - name: objects/object_vali
@@ -808,7 +808,7 @@ assets:
 - name: objects/object_wood02
   xml_path: assets/xml/objects/object_wood02.xml
 - name: objects/object_xc
-  xml_path: assets/xml/objects/object_xc_pal.xml
+  xml_path: assets/xml/objects/object_xc.xml
 - name: objects/object_yabusame_point
   xml_path: assets/xml/objects/object_yabusame_point.xml
 - name: objects/object_ydan_objects
diff --git a/baseroms/gc-jp-ce/config.yml b/baseroms/gc-jp-ce/config.yml
index f3c0541a62..f2c1cb58bc 100644
--- a/baseroms/gc-jp-ce/config.yml
+++ b/baseroms/gc-jp-ce/config.yml
@@ -513,7 +513,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_v3.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
diff --git a/baseroms/gc-jp-mq/config.yml b/baseroms/gc-jp-mq/config.yml
index 41d1721f3d..f50e46293d 100644
--- a/baseroms/gc-jp-mq/config.yml
+++ b/baseroms/gc-jp-mq/config.yml
@@ -513,7 +513,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_v2_mq.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
diff --git a/baseroms/gc-jp/config.yml b/baseroms/gc-jp/config.yml
index 73285664c6..5460cca12d 100644
--- a/baseroms/gc-jp/config.yml
+++ b/baseroms/gc-jp/config.yml
@@ -513,7 +513,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_v2.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
diff --git a/baseroms/gc-us-mq/config.yml b/baseroms/gc-us-mq/config.yml
index 1057e49b2e..9f43ab56fa 100644
--- a/baseroms/gc-us-mq/config.yml
+++ b/baseroms/gc-us-mq/config.yml
@@ -513,7 +513,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_v3_mq.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
diff --git a/baseroms/gc-us/config.yml b/baseroms/gc-us/config.yml
index 620d550631..25e0c52604 100644
--- a/baseroms/gc-us/config.yml
+++ b/baseroms/gc-us/config.yml
@@ -513,7 +513,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_v3.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
diff --git a/baseroms/ique-cn/config.yml b/baseroms/ique-cn/config.yml
index 6236b0cf51..594da76ad0 100644
--- a/baseroms/ique-cn/config.yml
+++ b/baseroms/ique-cn/config.yml
@@ -513,7 +513,7 @@ assets:
 - name: objects/object_ma2
   xml_path: assets/xml/objects/object_ma2.xml
 - name: objects/object_mag
-  xml_path: assets/xml/objects/object_mag_ique.xml
+  xml_path: assets/xml/objects/object_mag.xml
 - name: objects/object_mamenoki
   xml_path: assets/xml/objects/object_mamenoki.xml
 - name: objects/object_mastergolon
diff --git a/baseroms/pal-1.0/config.yml b/baseroms/pal-1.0/config.yml
index 37ffb7500b..8e7dafda90 100644
--- a/baseroms/pal-1.0/config.yml
+++ b/baseroms/pal-1.0/config.yml
@@ -224,7 +224,7 @@ assets:
 - name: objects/object_fa
   xml_path: assets/xml/objects/object_fa.xml
 - name: objects/object_fd
-  xml_path: assets/xml/objects/object_fd_pal.xml
+  xml_path: assets/xml/objects/object_fd.xml
 - name: objects/object_fd2
   xml_path: assets/xml/objects/object_fd2.xml
 - name: objects/object_fhg
@@ -434,7 +434,7 @@ assets:
 - name: objects/object_gol
   xml_path: assets/xml/objects/object_gol.xml
 - name: objects/object_goma
-  xml_path: assets/xml/objects/object_goma_pal.xml
+  xml_path: assets/xml/objects/object_goma.xml
 - name: objects/object_goroiwa
   xml_path: assets/xml/objects/object_goroiwa.xml
 - name: objects/object_gr
@@ -502,7 +502,7 @@ assets:
 - name: objects/object_kibako2
   xml_path: assets/xml/objects/object_kibako2.xml
 - name: objects/object_kingdodongo
-  xml_path: assets/xml/objects/object_kingdodongo_pal.xml
+  xml_path: assets/xml/objects/object_kingdodongo.xml
 - name: objects/object_km1
   xml_path: assets/xml/objects/object_km1.xml
 - name: objects/object_kusa
@@ -570,7 +570,7 @@ assets:
 - name: objects/object_mm
   xml_path: assets/xml/objects/object_mm.xml
 - name: objects/object_mo
-  xml_path: assets/xml/objects/object_mo_pal.xml
+  xml_path: assets/xml/objects/object_mo.xml
 - name: objects/object_mori_hineri1
   xml_path: assets/xml/objects/object_mori_hineri1.xml
 - name: objects/object_mori_hineri1a
@@ -800,7 +800,7 @@ assets:
 - name: objects/object_tsubo
   xml_path: assets/xml/objects/object_tsubo.xml
 - name: objects/object_tw
-  xml_path: assets/xml/objects/object_tw_pal.xml
+  xml_path: assets/xml/objects/object_tw.xml
 - name: objects/object_umajump
   xml_path: assets/xml/objects/object_umajump.xml
 - name: objects/object_vali
@@ -820,7 +820,7 @@ assets:
 - name: objects/object_wood02
   xml_path: assets/xml/objects/object_wood02.xml
 - name: objects/object_xc
-  xml_path: assets/xml/objects/object_xc_pal.xml
+  xml_path: assets/xml/objects/object_xc.xml
 - name: objects/object_yabusame_point
   xml_path: assets/xml/objects/object_yabusame_point.xml
 - name: objects/object_ydan_objects
diff --git a/baseroms/pal-1.1/config.yml b/baseroms/pal-1.1/config.yml
index 45bf82b877..4640c8dfdf 100644
--- a/baseroms/pal-1.1/config.yml
+++ b/baseroms/pal-1.1/config.yml
@@ -224,7 +224,7 @@ assets:
 - name: objects/object_fa
   xml_path: assets/xml/objects/object_fa.xml
 - name: objects/object_fd
-  xml_path: assets/xml/objects/object_fd_pal.xml
+  xml_path: assets/xml/objects/object_fd.xml
 - name: objects/object_fd2
   xml_path: assets/xml/objects/object_fd2.xml
 - name: objects/object_fhg
@@ -434,7 +434,7 @@ assets:
 - name: objects/object_gol
   xml_path: assets/xml/objects/object_gol.xml
 - name: objects/object_goma
-  xml_path: assets/xml/objects/object_goma_pal.xml
+  xml_path: assets/xml/objects/object_goma.xml
 - name: objects/object_goroiwa
   xml_path: assets/xml/objects/object_goroiwa.xml
 - name: objects/object_gr
@@ -502,7 +502,7 @@ assets:
 - name: objects/object_kibako2
   xml_path: assets/xml/objects/object_kibako2.xml
 - name: objects/object_kingdodongo
-  xml_path: assets/xml/objects/object_kingdodongo_pal.xml
+  xml_path: assets/xml/objects/object_kingdodongo.xml
 - name: objects/object_km1
   xml_path: assets/xml/objects/object_km1.xml
 - name: objects/object_kusa
@@ -570,7 +570,7 @@ assets:
 - name: objects/object_mm
   xml_path: assets/xml/objects/object_mm.xml
 - name: objects/object_mo
-  xml_path: assets/xml/objects/object_mo_pal.xml
+  xml_path: assets/xml/objects/object_mo.xml
 - name: objects/object_mori_hineri1
   xml_path: assets/xml/objects/object_mori_hineri1.xml
 - name: objects/object_mori_hineri1a
@@ -800,7 +800,7 @@ assets:
 - name: objects/object_tsubo
   xml_path: assets/xml/objects/object_tsubo.xml
 - name: objects/object_tw
-  xml_path: assets/xml/objects/object_tw_pal.xml
+  xml_path: assets/xml/objects/object_tw.xml
 - name: objects/object_umajump
   xml_path: assets/xml/objects/object_umajump.xml
 - name: objects/object_vali
@@ -820,7 +820,7 @@ assets:
 - name: objects/object_wood02
   xml_path: assets/xml/objects/object_wood02.xml
 - name: objects/object_xc
-  xml_path: assets/xml/objects/object_xc_pal.xml
+  xml_path: assets/xml/objects/object_xc.xml
 - name: objects/object_yabusame_point
   xml_path: assets/xml/objects/object_yabusame_point.xml
 - name: objects/object_ydan_objects
diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
index 49427c2096..7f76cb91a1 100644
--- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
+++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
@@ -26,8 +26,8 @@
 #include "assets/objects/gameplay_keep/gameplay_keep.h"
 #include "assets/objects/object_tw/object_tw.h"
 
-#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
-                               "ique-cn:0 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
+#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:0" \
+                               "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:128 pal-1.1:128"
 
 #define FLAGS                                                                                 \
     (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
diff --git a/tools/assets/descriptor/__main__.py b/tools/assets/descriptor/__main__.py
index 0d3f4e6dc3..e8698b4b61 100644
--- a/tools/assets/descriptor/__main__.py
+++ b/tools/assets/descriptor/__main__.py
@@ -1,6 +1,7 @@
 # SPDX-FileCopyrightText: © 2025 ZeldaRET
 # SPDX-License-Identifier: CC0-1.0
 
+import argparse
 from pprint import pprint as vanilla_pprint
 
 try:
@@ -14,17 +15,37 @@ from . import base
 
 
 def main():
-    vc = version_config.load_version_config("gc-eu-mq-dbg")
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--version", "-v", default="gc-eu-mq-dbg")
+    parser.add_argument("--all", action="store_true")
+    parser.add_argument("-s", dest="single", default=None)
+    args = parser.parse_args()
+
+    if not args.all and args.single is None:
+        parser.error("Must specify --all or -s")
+
+    vc = version_config.load_version_config(args.version)
 
     pools = base.get_resources_desc(vc)
 
     try:
         for pool in pools:
+            if not args.all and not any(
+                coll.backing_memory.name == args.single
+                for coll in pool.collections
+                if isinstance(coll.backing_memory, base.BaseromFileBackingMemory)
+            ):
+                continue
             if any(coll.out_path.name == "gameplay_keep" for coll in pool.collections):
                 vanilla_pprint(pool)
             else:
                 pprint(pool)
-            input("Press enter for next pool")
+            for coll in pool.collections:
+                print(coll.out_path)
+                for res in coll.resources:
+                    print(f"0x{res.offset:06X}", res.symbol_name)
+            if args.all:
+                input("Press enter for next pool")
     except KeyboardInterrupt:
         print()
 
diff --git a/tools/assets/descriptor/base.py b/tools/assets/descriptor/base.py
index a0833ec093..320d9101d8 100644
--- a/tools/assets/descriptor/base.py
+++ b/tools/assets/descriptor/base.py
@@ -5,6 +5,7 @@ import abc
 import dataclasses
 from functools import cache
 from pathlib import Path
+import re
 from typing import Callable, Optional
 from xml.etree import ElementTree
 
@@ -27,6 +28,10 @@ class NoBackingMemory(BackingMemory):
     pass
 
 
+class ResourceHasNoSizeError(Exception):
+    pass
+
+
 # eq=False so this uses id-based equality and hashing
 # Subclasses must also be made to use id-based equality and hashing
 @dataclasses.dataclass(eq=False)
@@ -43,6 +48,9 @@ class ResourceDesc(abc.ABC):
 
     hack_modes: set[str] = dataclasses.field(init=False, default_factory=set)
 
+    def get_size(self) -> int:
+        raise ResourceHasNoSizeError()
+
 
 class StartAddress(abc.ABC):
     pass
@@ -197,6 +205,15 @@ def get_resources_desc(vc: version_config.VersionConfig):
     return pools
 
 
+def _get_version_resources(fileelem: ElementTree.Element, version: str):
+    for reselem in fileelem:
+        if reselem.tag == "Version":
+            if re.fullmatch(reselem.attrib["Pattern"], version):
+                yield from reselem
+        else:
+            yield reselem
+
+
 def _get_resources_fileelem_to_resourcescollection_pass1(
     vc: version_config.VersionConfig,
     pool: list[AssetConfigPiece],
@@ -257,10 +274,31 @@ def _get_resources_fileelem_to_resourcescollection_pass1(
         [],
     )
     needs_pass2_exceptions: list[ResourceHandlerNeedsPass2Exception] = []
-    for reselem in fileelem:
+
+    prev_resource_end_offset = 0
+
+    for reselem in _get_version_resources(fileelem, vc.version):
         try:
             symbol_name = reselem.attrib["Name"]
-            offset = int(reselem.attrib["Offset"], 16)
+            if "Offset" in reselem.attrib:
+                offset_str = reselem.attrib["Offset"]
+                if offset_str.startswith(".+"):
+                    if prev_resource_end_offset is None:
+                        raise Exception(
+                            f"Resource {symbol_name} has a relative Offset"
+                            " and previous resource has no known end offset"
+                        )
+                    rel_offset = int(offset_str.removeprefix(".+"), 16)
+                    offset = prev_resource_end_offset + rel_offset
+                else:
+                    offset = int(offset_str, 16)
+            else:
+                if prev_resource_end_offset is None:
+                    raise Exception(
+                        f"Resource {symbol_name} has no Offset"
+                        " and previous resource has no known end offset"
+                    )
+                offset = prev_resource_end_offset
             res_handler = _get_resource_handler(reselem.tag)
             try:
                 res = res_handler(symbol_name, offset, collection, reselem)
@@ -269,6 +307,10 @@ def _get_resources_fileelem_to_resourcescollection_pass1(
                 needs_pass2_exceptions.append(needs_pass2_exc)
             assert isinstance(res, ResourceDesc)
             resources.append(res)
+            try:
+                prev_resource_end_offset = res.offset + res.get_size()
+            except ResourceHasNoSizeError:
+                prev_resource_end_offset = None
         except Exception as e:
             raise Exception(
                 "Error with resource element:\n"
diff --git a/tools/assets/descriptor/n64resources.py b/tools/assets/descriptor/n64resources.py
index fe7c7172da..77616871ca 100644
--- a/tools/assets/descriptor/n64resources.py
+++ b/tools/assets/descriptor/n64resources.py
@@ -3,6 +3,7 @@
 
 import dataclasses
 import enum
+from typing import Optional
 from xml.etree.ElementTree import Element
 
 from ..n64 import G_IM_FMT, G_IM_SIZ
@@ -13,6 +14,7 @@ from .base import (
     ResourcesDescCollectionsPool,
     ResourceHandlerNeedsPass2Exception,
     BaseromFileBackingMemory,
+    ResourceHasNoSizeError,
 )
 from . import xml_errors
 
@@ -27,20 +29,29 @@ class GfxMicroCode(enum.Enum):
 
 @dataclasses.dataclass(eq=False)
 class DListResourceDesc(ResourceDesc):
+    length: Optional[int]
     ucode: GfxMicroCode
     raw_pointers: set[int] = dataclasses.field(default_factory=set)
     """Pointers in the dlist that are fine to keep raw ("in hex") instead of using symbols"""
 
+    def get_size(self):
+        if self.length is None:
+            raise ResourceHasNoSizeError()
+        return self.length * 8
+
 
 def handler_DList(symbol_name, offset, collection, reselem: Element):
     xml_errors.check_attrib(
-        reselem, {"Name", "Offset"}, {"Ucode", "RawPointers"} | STATIC_ATTRIB
+        reselem, {"Name"}, {"Offset", "Length", "Ucode", "RawPointers"} | STATIC_ATTRIB
     )
+    length = None
+    if "Length" in reselem.attrib:
+        length = int(reselem.attrib["Length"])
     if "Ucode" in reselem.attrib:
         ucode = GfxMicroCode[reselem.attrib["Ucode"].upper()]
     else:
         ucode = GfxMicroCode.F3DEX2
-    res = DListResourceDesc(symbol_name, offset, collection, reselem, ucode)
+    res = DListResourceDesc(symbol_name, offset, collection, reselem, length, ucode)
     raw_pointers_str = reselem.attrib.get("RawPointers")
     if raw_pointers_str:
         for rp_str in raw_pointers_str.split(","):
@@ -54,7 +65,7 @@ class BlobResourceDesc(ResourceDesc):
 
 
 def handler_Blob(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset", "Size"}, STATIC_ATTRIB)
+    xml_errors.check_attrib(reselem, {"Name", "Size"}, {"Offset"} | STATIC_ATTRIB)
     size = int(reselem.attrib["Size"], 16)
     return BlobResourceDesc(symbol_name, offset, collection, reselem, size)
 
@@ -65,7 +76,7 @@ class MtxResourceDesc(ResourceDesc):
 
 
 def handler_Mtx(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset"}, STATIC_ATTRIB)
+    xml_errors.check_attrib(reselem, {"Name"}, {"Offset"} | STATIC_ATTRIB)
     return MtxResourceDesc(symbol_name, offset, collection, reselem)
 
 
@@ -83,9 +94,12 @@ class Vec3sArrayResourceDesc(ResourceDesc):
 class VtxArrayResourceDesc(ResourceDesc):
     count: int
 
+    def get_size(self):
+        return self.count * 0x10
+
 
 def handler_Array(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset", "Count"}, STATIC_ATTRIB)
+    xml_errors.check_attrib(reselem, {"Name", "Count"}, {"Offset"} | STATIC_ATTRIB)
     count = int(reselem.attrib["Count"])
     assert len(reselem) == 1, "Expected exactly one child of Array node"
     array_elem = reselem[0]
@@ -126,6 +140,9 @@ class TextureResourceDesc(ResourceDesc):
     width: int
     height: int
 
+    def get_size(self):
+        return self.width * self.height * self.format.siz.bpp // 8
+
 
 @dataclasses.dataclass(eq=False)
 class CITextureResourceDesc(TextureResourceDesc):
@@ -137,11 +154,13 @@ def handler_Texture(
 ):
     xml_errors.check_attrib(
         reselem,
-        {"Name", "Offset", "Format", "Width", "Height"},
+        {"Name", "Format", "Width", "Height"},
         # TODO remove OutName, SplitTlut
         {
+            "Offset",
             "OutName",
             "SplitTlut",
+            "Tlut",
             "TlutOffset",
             "ExternalTlut",
             "ExternalTlutOffset",
@@ -163,15 +182,39 @@ def handler_Texture(
             res.hack_modes.add("hackmode_split_tlut_false")
 
         assert (
-            "TlutOffset" in reselem.attrib or "ExternalTlutOffset" in reselem.attrib
-        ), f"CI texture {symbol_name} is missing a tlut offset"
+            "Tlut" in reselem.attrib
+            or "TlutOffset" in reselem.attrib
+            or "ExternalTlutOffset" in reselem.attrib
+        ), f"CI texture {symbol_name} is missing tlut information"
 
-        if "TlutOffset" in reselem.attrib:
+        if "Tlut" in reselem.attrib:
             xml_errors.check_attrib(
                 reselem,
-                {"Name", "Offset", "Format", "Width", "Height", "TlutOffset"},
+                {"Name", "Format", "Width", "Height", "Tlut"},
                 # TODO remove OutName, SplitTlut
-                {"OutName", "SplitTlut", "HackMode"} | STATIC_ATTRIB,
+                {"Offset", "OutName", "SplitTlut", "HackMode"} | STATIC_ATTRIB,
+            )
+            tlut_name = reselem.attrib["Tlut"]
+
+            def pass2_callback(pool: ResourcesDescCollectionsPool):
+                matching_tlut_resources = [
+                    res for res in collection.resources if res.symbol_name == tlut_name
+                ]
+                assert len(matching_tlut_resources) == 1, (
+                    f"Found {len(matching_tlut_resources)} resources named "
+                    f"{tlut_name} instead of exactly one"
+                )
+                assert isinstance(
+                    matching_tlut_resources[0], TextureResourceDesc
+                ), matching_tlut_resources[0]
+                res.tlut = matching_tlut_resources[0]
+
+        elif "TlutOffset" in reselem.attrib:
+            xml_errors.check_attrib(
+                reselem,
+                {"Name", "Format", "Width", "Height", "TlutOffset"},
+                # TODO remove OutName, SplitTlut
+                {"Offset", "OutName", "SplitTlut", "HackMode"} | STATIC_ATTRIB,
             )
             tlut_offset = int(reselem.attrib["TlutOffset"], 16)
 
@@ -193,7 +236,6 @@ def handler_Texture(
                 reselem,
                 {
                     "Name",
-                    "Offset",
                     "Format",
                     "Width",
                     "Height",
@@ -201,7 +243,7 @@ def handler_Texture(
                     "ExternalTlutOffset",
                 },
                 # TODO remove OutName, SplitTlut
-                {"OutName", "SplitTlut", "HackMode"} | STATIC_ATTRIB,
+                {"Offset", "OutName", "SplitTlut", "HackMode"} | STATIC_ATTRIB,
             )
             external_tlut_file = reselem.attrib["ExternalTlut"]
             external_tlut_offset = int(reselem.attrib["ExternalTlutOffset"], 16)
@@ -229,9 +271,9 @@ def handler_Texture(
     else:
         xml_errors.check_attrib(
             reselem,
-            {"Name", "Offset", "Format", "Width", "Height"},
+            {"Name", "Format", "Width", "Height"},
             # TODO remove OutName
-            {"OutName", "HackMode"} | STATIC_ATTRIB,
+            {"Offset", "OutName", "HackMode"} | STATIC_ATTRIB,
         )
         res = TextureResourceDesc(
             symbol_name, offset, collection, reselem, format, width, height
diff --git a/tools/assets/descriptor/spec.md b/tools/assets/descriptor/spec.md
index c038a13f82..ba8e4853fd 100644
--- a/tools/assets/descriptor/spec.md
+++ b/tools/assets/descriptor/spec.md
@@ -54,10 +54,17 @@ then `` refers to that ga
 
 Resource elements describe resources. Resources are pieces of data corresponding to a symbol each.
 
-Two attributes are required on all resource elements: `Name` and `Offset`.
+One attribute is required on all resource elements: `Name`.
 
 - `Name` is the name of the symbol associated to the resource.
-- `Offset` is the location in bytes from the start of the file data.
+
+Another attribute, optional, is common to all resource elements: `Offset`.
+
+If `Offset` is set to a (hexadecimal) number such as `Offset="0x421"`, it specifies the location of the resource in bytes from the start of the file data.
+
+If `Offset` is not set, the resource is assumed to start where the previous resource ended, or at 0 if the resource is the first in the ``.
+
+`Offset` can also be set to be a relative offset like `Offset=".+0x421"`, which makes the resource location be that many bytes after the end of the previous resource.
 
 ## `Blob`
 
@@ -74,12 +81,14 @@ Unstructured binary data.
 ## `DList`
 
 ```xml
-
+
 ```
 
 A display list.
 
-- Optional attributes: `Ucode`, `RawPointers`
+- Optional attributes: `Length`, `Ucode`, `RawPointers`
+
+`Length` can be set to indicate the length (amount of `Gfx` double-words) of the dlist. If not set, the dlist length is automatic.
 
 `Ucode` (defaults to `f3dex2`) picks the graphics microcode for which to disassemble the dlist. It may be `f3dex` or `f3dex2`.
 
@@ -97,6 +106,7 @@ A fixed-point matrix.
 
 ```xml
 
+
 
 
 ```
@@ -104,13 +114,13 @@ A fixed-point matrix.
 A texture, an image in one of the native N64 formats.
 
 - Required attributes for all formats: `Format`, `Width`, `Height`
-- Required attributes for CI formats (`ci4`, `ci8`): `TlutOffset`, or `ExternalTlut` and `ExternalTlutOffset`
+- Required attributes for CI formats (`ci4`, `ci8`): `Tlut`, or `TlutOffset`, or `ExternalTlut` and `ExternalTlutOffset`
 
 `Format` is the format of the texture, one of `rgba32`, `rgba16`, `i4`, `i8`, `ia4`, `ia8`, `ia16`, `ci4` or `ci8`.
 
 `Width` and `Height` specify the dimensions of the texture.
 
-For CI formats, the TLUT (Texture Look Up Table, or palette) must be specified with either `TlutOffset` if the TLUT is in the same file as the texture, or both of `ExternalTlut` and `ExternalTlutOffset` if the TLUT is in a different file. `ExternalTlut` is the name of the baserom file where the TLUT is. In both cases, the TLUT must also be declared as a resource.
+For CI formats, the TLUT (Texture Look Up Table, or palette) must be specified with either `Tlut` or `TlutOffset` if the TLUT is in the same file as the texture, or both of `ExternalTlut` and `ExternalTlutOffset` if the TLUT is in a different file. `ExternalTlut` is the name of the baserom file where the TLUT is. In both cases, the TLUT must also be declared as a resource.
 
 ## `Array`
 
diff --git a/tools/assets/descriptor/z64resources.py b/tools/assets/descriptor/z64resources.py
index fba264151f..9f241c3118 100644
--- a/tools/assets/descriptor/z64resources.py
+++ b/tools/assets/descriptor/z64resources.py
@@ -10,27 +10,30 @@ from .base import (
     ResourceDesc,
     ResourcesDescCollection,
     ResourceHandlerNeedsPass2Exception,
+    ResourceHasNoSizeError,
 )
 from . import xml_errors
 
 
 @dataclasses.dataclass(eq=False)
 class CollisionResourceDesc(ResourceDesc):
-    pass
+    def get_size(self):
+        return 0x2C
 
 
 def handler_Collision(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset"})
+    xml_errors.check_attrib(reselem, {"Name"}, {"Offset"})
     return CollisionResourceDesc(symbol_name, offset, collection, reselem)
 
 
 @dataclasses.dataclass(eq=False)
 class AnimationResourceDesc(ResourceDesc):
-    pass
+    def get_size(self):
+        return 0x10
 
 
 def handler_Animation(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset"})
+    xml_errors.check_attrib(reselem, {"Name"}, {"Offset"})
     return AnimationResourceDesc(symbol_name, offset, collection, reselem)
 
 
@@ -40,7 +43,7 @@ class PlayerAnimationResourceDesc(ResourceDesc):
 
 
 def handler_PlayerAnimation(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset"})
+    xml_errors.check_attrib(reselem, {"Name"}, {"Offset"})
     return PlayerAnimationResourceDesc(symbol_name, offset, collection, reselem)
 
 
@@ -50,7 +53,7 @@ class LegacyAnimationResourceDesc(ResourceDesc):
 
 
 def handler_LegacyAnimation(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset"})
+    xml_errors.check_attrib(reselem, {"Name"}, {"Offset"})
     return LegacyAnimationResourceDesc(symbol_name, offset, collection, reselem)
 
 
@@ -60,7 +63,7 @@ class CutsceneResourceDesc(ResourceDesc):
 
 
 def handler_Cutscene(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset"})
+    xml_errors.check_attrib(reselem, {"Name"}, {"Offset"})
     return CutsceneResourceDesc(symbol_name, offset, collection, reselem)
 
 
@@ -70,7 +73,7 @@ class SceneResourceDesc(ResourceDesc):
 
 
 def handler_Scene(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset"})
+    xml_errors.check_attrib(reselem, {"Name"}, {"Offset"})
     return SceneResourceDesc(symbol_name, offset, collection, reselem)
 
 
@@ -80,7 +83,7 @@ class RoomResourceDesc(ResourceDesc):
 
 
 def handler_Room(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset"}, {"HackMode"})
+    xml_errors.check_attrib(reselem, {"Name"}, {"Offset", "HackMode"})
     res = RoomResourceDesc(symbol_name, offset, collection, reselem)
     if reselem.attrib.get("HackMode") == "syotes_room":
         res.hack_modes.add("hackmode_syotes_room")
@@ -93,7 +96,7 @@ class PlayerAnimationDataResourceDesc(ResourceDesc):
 
 
 def handler_PlayerAnimationData(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset", "FrameCount"})
+    xml_errors.check_attrib(reselem, {"Name", "FrameCount"}, {"Offset"})
     frame_count = int(reselem.attrib["FrameCount"])
     return PlayerAnimationDataResourceDesc(
         symbol_name, offset, collection, reselem, frame_count
@@ -106,7 +109,7 @@ class PathListResourceDesc(ResourceDesc):
 
 
 def handler_PathList(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset", "NumPaths"})
+    xml_errors.check_attrib(reselem, {"Name", "NumPaths"}, {"Offset"})
     num_paths = int(reselem.attrib["NumPaths"])
     return PathListResourceDesc(symbol_name, offset, collection, reselem, num_paths)
 
@@ -133,12 +136,21 @@ class SkeletonResourceDesc(ResourceDesc):
     limb_enum_none_member_name: Optional[str]
     limb_enum_max_member_name: Optional[str]
 
+    def get_size(self):
+        skel_size = {
+            SkeletonType.NORMAL: 0x8,
+            SkeletonType.FLEX: 0xC,
+        }.get(self.type)
+        if skel_size is None:
+            raise ResourceHasNoSizeError()
+        return skel_size
+
 
 def handler_Skeleton(symbol_name, offset, collection, reselem: Element):
     xml_errors.check_attrib(
         reselem,
-        {"Name", "Offset", "Type", "LimbType"},
-        {"EnumName", "LimbNone", "LimbMax"},
+        {"Name", "Type", "LimbType"},
+        {"Offset", "EnumName", "LimbNone", "LimbMax"},
     )
     skel_type = SkeletonType[reselem.attrib["Type"].upper()]
     limb_type = LimbType[reselem.attrib["LimbType"].upper()]
@@ -160,9 +172,17 @@ class LimbResourceDesc(ResourceDesc):
     limb_type: LimbType
     limb_enum_member_name: Optional[str]
 
+    def get_size(self):
+        limb_size = {
+            LimbType.STANDARD: 0xC,
+        }.get(self.limb_type)
+        if limb_size is None:
+            raise ResourceHasNoSizeError()
+        return limb_size
+
 
 def handler_Limb(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset", "LimbType"}, {"EnumName"})
+    xml_errors.check_attrib(reselem, {"Name", "LimbType"}, {"Offset", "EnumName"})
     limb_type = LimbType[reselem.attrib["LimbType"].upper()]
     return LimbResourceDesc(
         symbol_name,
@@ -179,9 +199,12 @@ class LimbTableResourceDesc(ResourceDesc):
     limb_type: LimbType
     count: int
 
+    def get_size(self):
+        return self.count * 4
+
 
 def handler_LimbTable(symbol_name, offset, collection, reselem: Element):
-    xml_errors.check_attrib(reselem, {"Name", "Offset", "LimbType", "Count"})
+    xml_errors.check_attrib(reselem, {"Name", "LimbType", "Count"}, {"Offset"})
     limb_type = LimbType[reselem.attrib["LimbType"].upper()]
     count = int(reselem.attrib["Count"])
     return LimbTableResourceDesc(
@@ -197,7 +220,7 @@ class CurveAnimationResourceDesc(ResourceDesc):
 def handler_CurveAnimation(
     symbol_name, offset, collection: ResourcesDescCollection, reselem: Element
 ):
-    xml_errors.check_attrib(reselem, {"Name", "Offset", "SkelOffset"})
+    xml_errors.check_attrib(reselem, {"Name", "SkelOffset"}, {"Offset"})
     res = CurveAnimationResourceDesc(symbol_name, offset, collection, reselem, None)
 
     skel_offset = int(reselem.attrib["SkelOffset"], 16)
diff --git a/tools/assets/extract/extase_oot64/dlist_resources.py b/tools/assets/extract/extase_oot64/dlist_resources.py
index f80a2f9954..371bb4d151 100644
--- a/tools/assets/extract/extase_oot64/dlist_resources.py
+++ b/tools/assets/extract/extase_oot64/dlist_resources.py
@@ -1215,6 +1215,12 @@ class DListResource(Resource, can_size_be_unknown=True):
         self.target_ucode = target_ucode
         self.ignored_raw_pointers: set[int] = set()
 
+    def set_length(self, length: int):
+        if self.range_end is not None:
+            if length != ((self.range_end - self.range_start) // 8):
+                raise ValueError("length already set and different")
+        self.range_end = self.range_start + length * 8
+
     def try_parse_data(self, memory_context):
         offset = self.range_start
 
@@ -1332,8 +1338,13 @@ class DListResource(Resource, can_size_be_unknown=True):
 
             return pygfxd.gfxd_macro_dflt()
 
+        if self.range_end is None:
+            dlist_data = self.file.data[self.range_start :]
+        else:
+            dlist_data = self.file.data[self.range_start : self.range_end]
+
         size = gfxdis(
-            input_buffer=self.file.data[self.range_start :],
+            input_buffer=dlist_data,
             target=self.target_ucode.gfxd_ucode,
             vtx_callback=vtx_cb,
             timg_callback=timg_cb,
diff --git a/tools/assets/extract/z64_resource_handlers.py b/tools/assets/extract/z64_resource_handlers.py
index d0b6c2067a..c494243b92 100644
--- a/tools/assets/extract/z64_resource_handlers.py
+++ b/tools/assets/extract/z64_resource_handlers.py
@@ -229,6 +229,8 @@ def register_resource_handlers():
                 n64resources.GfxMicroCode.F3DEX2: dlist_resources.Ucode.f3dex2,
             }[resource_desc.ucode],
         )
+        if resource_desc.length is not None:
+            res.set_length(resource_desc.length)
         res.ignored_raw_pointers |= resource_desc.raw_pointers
         return res