sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

dynlist_mario_master.c (50351B)


      1 #include <PR/ultratypes.h>
      2 
      3 #include "dynlist_macros.h"
      4 #include "dynlists.h"
      5 #include "animdata.h"
      6 #include "../dynlist_proc.h"
      7 #include "../shape_helper.h"
      8 
      9 struct DynList dynlist_mario_master[] = {
     10     BeginList(),
     11     UseIntegerNames(TRUE),  // Specify all object names as integers
     12 
     13     StartGroup(DYNOBJ_MARIO_MAIN_SHAPES_GROUP),
     14         CallList(dynlist_mario_face_shape),
     15         CallList(dynlist_mario_eye_right_shape),
     16         CallList(dynlist_mario_eye_left_shape),
     17         CallList(dynlist_mario_eyebrow_right_shape),
     18         CallList(dynlist_mario_eyebrow_left_shape),
     19         CallList(dynlist_mario_mustache_shape),
     20     EndGroup(DYNOBJ_MARIO_MAIN_SHAPES_GROUP),
     21 
     22     MakeDynObj(D_LIGHT, DYNOBJ_SILVER_STAR_LIGHT),
     23         SetId(1),
     24         SetDiffuse(1.0, 1.0, 1.0),
     25         SetFlag(0x20),
     26         SetShapePtrPtr(&gShapeSilverStar),
     27 
     28     MakeDynObj(D_LIGHT, DYNOBJ_RED_STAR_LIGHT),
     29         SetId(0),
     30         SetDiffuse(1.0, 0.0, 0.0),
     31         SetShapePtrPtr(&gShapeRedStar),
     32 
     33     StartGroup(0x1),
     34 
     35         MakeDynObj(D_NET, DYNOBJ_MARIO_MAIN_NET),
     36             SetType(2),
     37             SetFlag(0x2),
     38             SetShapePtr(DYNOBJ_MARIO_FACE_SHAPE),
     39             SetScale(1.0, 1.0, 1.0),
     40             SetRotation(112.873, 0.0, 0.0),
     41             SetAttachOffset(0.0, 0.0, -20010.0),
     42 
     43         // right eyelid skinning
     44         MakeNetWithSubGroup(DYNOBJ_RIGHT_EYELID_SKIN_NET),
     45             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
     46             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
     47             SetScale(1.0, 1.0, 1.0),
     48             SetRotation(0.0, 90.0, 0.0),
     49             SetAttachOffset(116.3, 182.6, -70.2),
     50             MakeAttachedJoint(DYNOBJ_RIGHT_EYELID_JOINT_1),
     51                 SetScale(1.0, 1.0, 1.0),
     52                 SetRotation(0.0, 0.0, 162.007),
     53                 SetAttachOffset(0.0, 0.0, 0.0),
     54                 SetSkinWeight(7, 95.0),
     55                 SetSkinWeight(8, 70.0),
     56                 SetSkinWeight(48, 90.0),
     57                 SetSkinWeight(49, 100.0),
     58                 SetSkinWeight(128, 60.0),
     59                 SetSkinWeight(131, 90.0),
     60                 SetSkinWeight(132, 100.0),
     61                 SetSkinWeight(133, 95.0),
     62                 SetSkinWeight(134, 70.0),
     63                 SetSkinWeight(428, 50.0),
     64                 SetSkinWeight(429, 20.0),
     65                 SetSkinWeight(51, 35.0),
     66                 SetSkinWeight(124, 10.0),
     67                 SetSkinWeight(126, 10.0),
     68                 SetSkinWeight(127, 5.0),
     69                 SetSkinWeight(130, 50.0),
     70                 SetSkinWeight(135, 20.0),
     71                 SetSkinWeight(136, 10.0),
     72                 SetSkinWeight(423, 35.0),
     73                 SetSkinWeight(46, 40.0),
     74                 SetSkinWeight(47, 10.0),
     75                 SetSkinWeight(82, 10.0),
     76                 MakeAttachedJoint(DYNOBJ_RIGHT_EYELID_JOINT_2),  // What is this joint for?
     77                     SetScale(1.0, 1.0, 1.0),
     78                     SetRotation(0.0, 0.0, 0.0),
     79                     SetAttachOffset(382.3, 0.0, 0.0),
     80         EndNetWithSubGroup(DYNOBJ_RIGHT_EYELID_SKIN_NET),
     81 
     82         // left eyelid skinning
     83         MakeNetWithSubGroup(DYNOBJ_LEFT_EYELID_SKIN_NET),
     84             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
     85             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
     86             SetScale(1.0, 1.0, 1.0),
     87             SetRotation(0.0, 90.0, 0.0),
     88             SetAttachOffset(-116.3, 182.6, -70.2),
     89             MakeAttachedJoint(DYNOBJ_LEFT_EYELID_JOINT_1),
     90                 SetScale(1.0, 1.0, 1.0),
     91                 SetRotation(0.0, 0.0, 162.007),
     92                 SetAttachOffset(0.0, 0.0, 0.0),
     93                 SetSkinWeight(196, 90.0),
     94                 SetSkinWeight(375, 70.0),
     95                 SetSkinWeight(392, 70.0),
     96                 SetSkinWeight(393, 95.0),
     97                 SetSkinWeight(394, 95.0),
     98                 SetSkinWeight(395, 100.0),
     99                 SetSkinWeight(396, 100.0),
    100                 SetSkinWeight(397, 90.0),
    101                 SetSkinWeight(399, 60.0),
    102                 SetSkinWeight(428, 50.0),
    103                 SetSkinWeight(429, 20.0),
    104                 SetSkinWeight(197, 50.0),
    105                 SetSkinWeight(385, 5.0),
    106                 SetSkinWeight(388, 10.0),
    107                 SetSkinWeight(389, 10.0),
    108                 SetSkinWeight(390, 20.0),
    109                 SetSkinWeight(391, 35.0),
    110                 SetSkinWeight(398, 10.0),
    111                 SetSkinWeight(419, 35.0),
    112                 SetSkinWeight(400, 40.0),
    113                 SetSkinWeight(374, 10.0),
    114                 SetSkinWeight(387, 10.0),
    115                 MakeAttachedJoint(DYNOBJ_LEFT_EYELID_JOINT_2),  // What is this joint for?
    116                     SetScale(1.0, 1.0, 1.0),
    117                     SetRotation(0.0, 0.0, 0.0),
    118                     SetAttachOffset(420.0, 0.0, 0.0),
    119         EndNetWithSubGroup(DYNOBJ_LEFT_EYELID_SKIN_NET),
    120 
    121         // right jaw skinning
    122         MakeNetWithSubGroup(DYNOBJ_MARIO_JAW_SKIN_NET),
    123             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    124             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    125             SetScale(1.0, 1.0, 1.0),
    126             SetRotation(0.0, 90.0, 0.0),
    127             SetAttachOffset(0.0, -154.9, 118.5),
    128             MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_JAW_JOINT),
    129                 SetScale(1.0, 1.0, 1.0),
    130                 SetRotation(0.0, 0.0, -111.558),
    131                 SetAttachOffset(0.0, 0.0, 0.0),
    132                 SetSkinWeight(98, 100.0),
    133                 SetSkinWeight(104, 100.0),
    134                 SetSkinWeight(189, 100.0),
    135                 SetSkinWeight(358, 100.0),
    136                 SetSkinWeight(5, 40.0),
    137                 SetSkinWeight(10, 38.0),
    138                 SetSkinWeight(380, 40.0),
    139                 SetSkinWeight(405, 38.0),
    140                 SetSkinWeight(39, 50.0),
    141                 SetSkinWeight(117, 50.0),
    142                 SetSkinWeight(337, 50.0),
    143                 SetSkinWeight(11, 40.0),
    144                 SetSkinWeight(379, 40.0),
    145                 SetSkinWeight(105, 50.0),
    146                 SetSkinWeight(116, 50.0),
    147                 SetSkinWeight(406, 50.0),
    148                 SetSkinWeight(85, 70.0),
    149                 SetSkinWeight(86, 60.0),
    150                 SetSkinWeight(111, 30.0),
    151                 SetSkinWeight(159, 50.0),
    152                 SetSkinWeight(357, 50.0),
    153                 SetSkinWeight(416, 60.0),
    154                 SetSkinWeight(6, 25.0),
    155                 SetSkinWeight(407, 25.0),
    156                 SetSkinWeight(408, 30.0),
    157                 SetSkinWeight(4, 30.0),
    158                 SetSkinWeight(410, 70.0),
    159                 SetSkinWeight(409, 30.0),
    160                 SetSkinWeight(109, 15.0),
    161                 SetSkinWeight(355, 15.0),
    162                 SetSkinWeight(35, 5.0),
    163                 SetSkinWeight(372, 5.0),
    164                 SetSkinWeight(376, 5.0),
    165                 SetSkinWeight(110, 5.0),
    166                 SetSkinWeight(16, 3.0),
    167                 SetSkinWeight(17, 3.0),
    168                 SetSkinWeight(34, 3.0),
    169                 SetSkinWeight(373, 3.0),
    170                 SetSkinWeight(381, 3.0),
    171                 SetSkinWeight(383, 3.0),
    172                 MakeAttachedJoint(DYNOBJ_MARIO_LEFT_JAW_JOINT),
    173                     SetScale(1.0, 1.0, 1.0),
    174                     SetRotation(0.0, 0.0, -31.153),
    175                     SetAttachOffset(141.0, 0.0, 0.0),
    176                     SetSkinWeight(31, 80.0),
    177                     SetSkinWeight(32, 80.0),
    178                     SetSkinWeight(39, 30.0),
    179                     SetSkinWeight(40, 10.0),
    180                     SetSkinWeight(99, 100.0),
    181                     SetSkinWeight(100, 100.0),
    182                     SetSkinWeight(105, 50.0),
    183                     SetSkinWeight(113, 100.0),
    184                     SetSkinWeight(114, 100.0),
    185                     SetSkinWeight(115, 100.0),
    186                     SetSkinWeight(116, 50.0),
    187                     SetSkinWeight(117, 20.0),
    188                     SetSkinWeight(177, 20.0),
    189                     SetSkinWeight(336, 10.0),
    190                     SetSkinWeight(337, 30.0),
    191                     SetSkinWeight(406, 50.0),
    192                     SetSkinWeight(411, 80.0),
    193                     SetSkinWeight(412, 100.0),
    194                     SetSkinWeight(413, 100.0),
    195                     SetSkinWeight(414, 100.0),
    196                     SetSkinWeight(415, 80.0),
    197                     SetSkinWeight(418, 100.0),
    198                     SetSkinWeight(409, 28.0),
    199                     SetSkinWeight(86, 8.0),
    200                     SetSkinWeight(416, 4.0),
    201                     SetSkinWeight(4, 28.0),
    202                     SetSkinWeight(5, 3.0),
    203                     SetSkinWeight(10, 5.0),
    204                     SetSkinWeight(380, 5.0),
    205                     SetSkinWeight(405, 5.0),
    206                     MakeAttachedJoint(DYNOBJ_MARIO_UNKNOWN_191),  // What is this joint for?
    207                         SetScale(1.0, 1.0, 1.0),
    208                         SetRotation(0.0, 0.0, 0.0),
    209                         SetAttachOffset(80.1, 0.0, 0.0),
    210         EndNetWithSubGroup(DYNOBJ_MARIO_JAW_SKIN_NET),
    211 
    212         // nose skinning
    213         MakeNetWithSubGroup(DYNOBJ_MARIO_NOSE_SKIN_NET),
    214             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    215             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    216             SetScale(1.0, 1.0, 1.0),
    217             SetRotation(0.0, 90.0, 0.0),
    218             SetAttachOffset(0.0, 15.3, 295.1),
    219             MakeAttachedJoint(DYNOBJ_MARIO_NOSE_JOINT_1),
    220                 SetScale(1.0, 1.0, 1.0),
    221                 SetRotation(0.0, 0.0, -178.586),
    222                 SetAttachOffset(0.0, 0.0, 0.0),
    223                 SetSkinWeight(15, 5.0),
    224                 SetSkinWeight(18, 30.0),
    225                 SetSkinWeight(23, 70.0),
    226                 SetSkinWeight(24, 40.0),
    227                 SetSkinWeight(25, 90.0),
    228                 SetSkinWeight(26, 70.0),
    229                 SetSkinWeight(27, 90.0),
    230                 SetSkinWeight(28, 40.0),
    231                 SetSkinWeight(29, 70.0),
    232                 SetSkinWeight(30, 90.0),
    233                 SetSkinWeight(41, 70.0),
    234                 SetSkinWeight(160, 70.0),
    235                 SetSkinWeight(161, 100.0),
    236                 SetSkinWeight(182, 90.0),
    237                 SetSkinWeight(183, 90.0),
    238                 SetSkinWeight(346, 70.0),
    239                 SetSkinWeight(347, 30.0),
    240                 SetSkinWeight(348, 70.0),
    241                 SetSkinWeight(349, 40.0),
    242                 SetSkinWeight(350, 30.0),
    243                 SetSkinWeight(351, 70.0),
    244                 SetSkinWeight(352, 90.0),
    245                 SetSkinWeight(353, 5.0),
    246                 SetSkinWeight(386, 5.0),
    247                 SetSkinWeight(430, 70.0),
    248                 SetSkinWeight(431, 70.0),
    249                 SetSkinWeight(433, 70.0),
    250                 SetSkinWeight(434, 70.0),
    251                 SetSkinWeight(435, 70.0),
    252                 SetSkinWeight(436, 70.0),
    253                 SetSkinWeight(437, 70.0),
    254                 SetSkinWeight(439, 70.0),
    255                 SetSkinWeight(19, 40.0),
    256                 SetSkinWeight(20, 5.0),
    257                 SetSkinWeight(21, 5.0),
    258                 SetSkinWeight(22, 30.0),
    259                 SetSkinWeight(82, 5.0),
    260                 SetSkinWeight(83, 5.0),
    261                 SetSkinWeight(87, 5.0),
    262                 SetSkinWeight(384, 5.0),
    263                 SetSkinWeight(387, 5.0),
    264                 SetSkinWeight(432, 40.0),
    265                 SetSkinWeight(438, 40.0),
    266                 MakeAttachedJoint(DYNOBJ_MARIO_NOSE_JOINT_2),  // What is this joint for?
    267                     SetScale(1.0, 1.0, 1.0),
    268                     SetRotation(0.0, 0.0, 0.0),
    269                     SetAttachOffset(276.6, 0.0, 0.0),
    270         EndNetWithSubGroup(DYNOBJ_MARIO_NOSE_SKIN_NET),
    271 
    272         // right ear skinning
    273         MakeNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EAR_SKIN_NET),
    274             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    275             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    276             SetScale(1.0, 1.0, 1.0),
    277             SetRotation(-90.0, 0.0, 0.0),
    278             SetAttachOffset(294.7, 13.1, -82.1),
    279             MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EAR_JOINT_1),
    280                 SetScale(1.0, 1.0, 1.0),
    281                 SetRotation(0.0, 0.0, 26.565),
    282                 SetAttachOffset(0.0, 0.0, 0.0),
    283                 SetSkinWeight(59, 80.0),
    284                 SetSkinWeight(60, 50.0),
    285                 SetSkinWeight(61, 60.0),
    286                 SetSkinWeight(65, 100.0),
    287                 SetSkinWeight(66, 60.0),
    288                 SetSkinWeight(88, 10.0),
    289                 SetSkinWeight(89, 60.0),
    290                 SetSkinWeight(90, 80.0),
    291                 SetSkinWeight(91, 70.0),
    292                 SetSkinWeight(92, 100.0),
    293                 SetSkinWeight(118, 15.0),
    294                 SetSkinWeight(119, 5.0),
    295                 SetSkinWeight(120, 15.0),
    296                 SetSkinWeight(122, 60.0),
    297                 SetSkinWeight(123, 70.0),
    298                 SetSkinWeight(137, 10.0),
    299                 SetSkinWeight(138, 60.0),
    300                 SetSkinWeight(139, 10.0),
    301                 SetSkinWeight(140, 5.0),
    302                 SetSkinWeight(141, 10.0),
    303                 SetSkinWeight(167, 60.0),
    304                 SetSkinWeight(168, 70.0),
    305                 SetSkinWeight(224, 50.0),
    306                 SetSkinWeight(225, 70.0),
    307                 SetSkinWeight(226, 50.0),
    308                 SetSkinWeight(227, 50.0),
    309                 SetSkinWeight(228, 60.0),
    310                 SetSkinWeight(229, 60.0),
    311                 SetSkinWeight(235, 10.0),
    312                 MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EAR_JOINT_2),  // What is this joint for?
    313                     SetScale(1.0, 1.0, 1.0),
    314                     SetRotation(0.0, 0.0, 0.0),
    315                     SetAttachOffset(200.9, 0.0, 0.0),
    316         EndNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EAR_SKIN_NET),
    317 
    318         // left ear skinning
    319         MakeNetWithSubGroup(DYNOBJ_MARIO_LEFT_EAR_SKIN_NET),
    320             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    321             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    322             SetScale(1.0, 1.0, 1.0),
    323             SetRotation(90.0, 180.0, 0.0),
    324             SetAttachOffset(-294.7, 13.1, -82.1),
    325             MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EAR_JOINT_1),
    326                 SetScale(1.0, 1.0, 1.0),
    327                 SetRotation(180.0, 180.0, -153.435),
    328                 SetAttachOffset(0.0, 0.0, 0.0),
    329                 SetSkinWeight(244, 5.0),
    330                 SetSkinWeight(267, 5.0),
    331                 SetSkinWeight(268, 5.0),
    332                 SetSkinWeight(299, 5.0),
    333                 SetSkinWeight(302, 5.0),
    334                 SetSkinWeight(307, 70.0),
    335                 SetSkinWeight(308, 70.0),
    336                 SetSkinWeight(309, 100.0),
    337                 SetSkinWeight(310, 70.0),
    338                 SetSkinWeight(311, 70.0),
    339                 SetSkinWeight(314, 100.0),
    340                 SetSkinWeight(315, 70.0),
    341                 SetSkinWeight(317, 80.0),
    342                 SetSkinWeight(318, 70.0),
    343                 SetSkinWeight(319, 80.0),
    344                 SetSkinWeight(320, 70.0),
    345                 SetSkinWeight(321, 10.0),
    346                 SetSkinWeight(322, 10.0),
    347                 SetSkinWeight(323, 10.0),
    348                 SetSkinWeight(324, 10.0),
    349                 SetSkinWeight(325, 60.0),
    350                 SetSkinWeight(326, 100.0),
    351                 SetSkinWeight(327, 100.0),
    352                 SetSkinWeight(328, 100.0),
    353                 SetSkinWeight(329, 80.0),
    354                 SetSkinWeight(330, 80.0),
    355                 SetSkinWeight(331, 60.0),
    356                 SetSkinWeight(332, 70.0),
    357                 SetSkinWeight(340, 70.0),
    358                 MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EAR_JOINT_2),  // What is this joint for?
    359                     SetScale(1.0, 1.0, 1.0),
    360                     SetRotation(0.0, 0.0, 0.02),
    361                     SetAttachOffset(200.9, 0.0, 0.0),
    362         EndNetWithSubGroup(DYNOBJ_MARIO_LEFT_EAR_SKIN_NET),
    363 
    364         // right lip corner skinning
    365         MakeNetWithSubGroup(DYNOBJ_MARIO_RIGHT_LIP_CORNER_SKIN_NET),
    366             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    367             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    368             SetScale(1.0, 1.0, 1.0),
    369             SetRotation(-90.0, 0.0, 0.0),
    370             SetAttachOffset(119.7, -161.4, 125.5),
    371             MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_LIP_CORNER_JOINT_1),
    372                 SetScale(1.0, 1.0, 1.0),
    373                 SetRotation(-0.02, 0.0, -66.509),
    374                 SetAttachOffset(0.0, 0.0, 0.0),
    375                 SetSkinWeight(4, 42.0),
    376                 SetSkinWeight(5, 40.0),
    377                 SetSkinWeight(6, 75.0),
    378                 SetSkinWeight(10, 30.0),
    379                 SetSkinWeight(11, 40.0),
    380                 SetSkinWeight(16, 20.0),
    381                 SetSkinWeight(17, 15.0),
    382                 SetSkinWeight(33, 30.0),
    383                 SetSkinWeight(34, 20.0),
    384                 SetSkinWeight(35, 60.0),
    385                 SetSkinWeight(37, 10.0),
    386                 SetSkinWeight(43, 40.0),
    387                 SetSkinWeight(85, 30.0),
    388                 SetSkinWeight(86, 30.0),
    389                 SetSkinWeight(93, 30.0),
    390                 SetSkinWeight(94, 10.0),
    391                 SetSkinWeight(101, 100.0),
    392                 SetSkinWeight(103, 100.0),
    393                 SetSkinWeight(108, 10.0),
    394                 SetSkinWeight(109, 70.0),
    395                 SetSkinWeight(110, 80.0),
    396                 SetSkinWeight(111, 60.0),
    397                 SetSkinWeight(112, 70.0),
    398                 SetSkinWeight(159, 50.0),
    399                 SetSkinWeight(42, 30.0),
    400                 SetSkinWeight(102, 30.0),
    401                 SetSkinWeight(31, 20.0),
    402                 SetSkinWeight(32, 20.0),
    403                 SetSkinWeight(44, 15.0),
    404                 MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_LIP_CORNER_JOINT_2),  // What is this joint for?
    405                     SetScale(1.0, 1.0, 1.0),
    406                     SetRotation(0.028, 0.0, 0.0),
    407                     SetAttachOffset(184.5, 0.0, 0.0),
    408         EndNetWithSubGroup(DYNOBJ_MARIO_RIGHT_LIP_CORNER_SKIN_NET),
    409 
    410         // left lip corner skinning
    411         MakeNetWithSubGroup(DYNOBJ_MARIO_LEFT_LIP_CORNER_SKIN_NET),
    412             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    413             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    414             SetScale(1.0, 1.0, 1.0),
    415             SetRotation(90.0, 180.0, 0.0),
    416             SetAttachOffset(-119.7, -161.4, 125.5),
    417             MakeAttachedJoint(DYNOBJ_MARIO_LEFT_LIP_CORNER_JOINT_1),
    418                 SetScale(1.0, 1.0, 1.0),
    419                 SetRotation(0.02, 0.0, -66.509),
    420                 SetAttachOffset(0.0, 0.0, 0.0),
    421                 SetSkinWeight(187, 100.0),
    422                 SetSkinWeight(273, 30.0),
    423                 SetSkinWeight(342, 10.0),
    424                 SetSkinWeight(354, 40.0),
    425                 SetSkinWeight(355, 70.0),
    426                 SetSkinWeight(356, 70.0),
    427                 SetSkinWeight(357, 50.0),
    428                 SetSkinWeight(371, 10.0),
    429                 SetSkinWeight(372, 60.0),
    430                 SetSkinWeight(373, 20.0),
    431                 SetSkinWeight(376, 80.0),
    432                 SetSkinWeight(377, 100.0),
    433                 SetSkinWeight(378, 10.0),
    434                 SetSkinWeight(379, 40.0),
    435                 SetSkinWeight(380, 30.0),
    436                 SetSkinWeight(381, 15.0),
    437                 SetSkinWeight(383, 20.0),
    438                 SetSkinWeight(404, 30.0),
    439                 SetSkinWeight(405, 30.0),
    440                 SetSkinWeight(407, 75.0),
    441                 SetSkinWeight(408, 60.0),
    442                 SetSkinWeight(409, 42.0),
    443                 SetSkinWeight(410, 30.0),
    444                 SetSkinWeight(416, 36.0),
    445                 SetSkinWeight(199, 15.0),
    446                 SetSkinWeight(415, 20.0),
    447                 SetSkinWeight(411, 20.0),
    448                 SetSkinWeight(188, 20.0),
    449                 SetSkinWeight(198, 20.0),
    450                 MakeAttachedJoint(DYNOBJ_MARIO_LEFT_LIP_CORNER_JOINT_2),  // What is this joint for?
    451                     SetScale(1.0, 1.0, 1.0),
    452                     SetRotation(-0.028, 0.0, 0.0),
    453                     SetAttachOffset(184.5, 0.0, 0.0),
    454         EndNetWithSubGroup(DYNOBJ_MARIO_LEFT_LIP_CORNER_SKIN_NET),
    455 
    456         // ???
    457         MakeNetWithSubGroup(0x8F),
    458             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    459             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    460             SetScale(1.0, 1.0, 1.0),
    461             SetRotation(0.0, 90.0, 0.0),
    462             SetAttachOffset(0.0, -162.2, 121.0),
    463             MakeAttachedJoint(DYNOBJ_MARIO_UNKNOWN_140),
    464                 SetScale(1.0, 1.0, 1.0),
    465                 SetRotation(0.0, 0.0, -176.775),
    466                 SetAttachOffset(0.0, 0.0, 0.0),
    467                 SetSkinWeight(42, 70.0),
    468                 SetSkinWeight(44, 85.0),
    469                 SetSkinWeight(102, 70.0),
    470                 SetSkinWeight(188, 80.0),
    471                 SetSkinWeight(198, 80.0),
    472                 SetSkinWeight(199, 85.0),
    473                 MakeAttachedJoint(DYNOBJ_MARIO_UNKNOWN_137),  // What is this joint for?
    474                     SetScale(1.0, 1.0, 1.0),
    475                     SetRotation(0.0, 0.0, 0.0),
    476                     SetAttachOffset(242.8, 0.0, 0.0),
    477         EndNetWithSubGroup(0x8F),
    478 
    479         // cap skinning
    480         MakeNetWithSubGroup(DYNOBJ_MARIO_CAP_SKIN_NET),
    481             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    482             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    483             SetScale(1.0, 1.0, 1.0),
    484             SetRotation(0.0, 90.0, 0.0),
    485             SetAttachOffset(0.0, 233.8, -148.8),
    486             MakeAttachedJoint(DYNOBJ_MARIO_CAP_JOINT_1),
    487                 SetScale(1.0, 1.0, 1.0),
    488                 SetRotation(0.0, 0.0, 153.932),
    489                 SetAttachOffset(0.0, 0.0, 0.0),
    490                 SetSkinWeight(68, 90.0),
    491                 SetSkinWeight(69, 100.0),
    492                 SetSkinWeight(70, 100.0),
    493                 SetSkinWeight(71, 100.0),
    494                 SetSkinWeight(75, 100.0),
    495                 SetSkinWeight(76, 100.0),
    496                 SetSkinWeight(77, 100.0),
    497                 SetSkinWeight(79, 80.0),
    498                 SetSkinWeight(129, 100.0),
    499                 SetSkinWeight(147, 90.0),
    500                 SetSkinWeight(148, 90.0),
    501                 SetSkinWeight(149, 100.0),
    502                 SetSkinWeight(150, 100.0),
    503                 SetSkinWeight(151, 100.0),
    504                 SetSkinWeight(154, 100.0),
    505                 SetSkinWeight(155, 100.0),
    506                 SetSkinWeight(156, 100.0),
    507                 SetSkinWeight(157, 100.0),
    508                 SetSkinWeight(184, 100.0),
    509                 SetSkinWeight(185, 100.0),
    510                 SetSkinWeight(192, 100.0),
    511                 SetSkinWeight(193, 90.0),
    512                 SetSkinWeight(194, 80.0),
    513                 SetSkinWeight(195, 100.0),
    514                 SetSkinWeight(201, 100.0),
    515                 SetSkinWeight(202, 100.0),
    516                 SetSkinWeight(230, 100.0),
    517                 SetSkinWeight(360, 100.0),
    518                 SetSkinWeight(361, 100.0),
    519                 SetSkinWeight(362, 100.0),
    520                 SetSkinWeight(363, 100.0),
    521                 SetSkinWeight(364, 100.0),
    522                 SetSkinWeight(366, 100.0),
    523                 SetSkinWeight(367, 90.0),
    524                 SetSkinWeight(368, 100.0),
    525                 SetSkinWeight(369, 90.0),
    526                 SetSkinWeight(420, 100.0),
    527                 SetSkinWeight(421, 100.0),
    528                 SetSkinWeight(422, 100.0),
    529                 SetSkinWeight(424, 100.0),
    530                 SetSkinWeight(425, 100.0),
    531                 SetSkinWeight(426, 100.0),
    532                 SetSkinWeight(427, 100.0),
    533                 SetSkinWeight(58, 100.0),
    534                 SetSkinWeight(242, 100.0),
    535                 SetSkinWeight(0, 100.0),
    536                 SetSkinWeight(1, 100.0),
    537                 SetSkinWeight(2, 80.0),
    538                 SetSkinWeight(9, 100.0),
    539                 SetSkinWeight(50, 100.0),
    540                 SetSkinWeight(54, 100.0),
    541                 SetSkinWeight(55, 100.0),
    542                 SetSkinWeight(56, 100.0),
    543                 SetSkinWeight(57, 100.0),
    544                 SetSkinWeight(67, 80.0),
    545                 SetSkinWeight(78, 90.0),
    546                 SetSkinWeight(80, 100.0),
    547                 SetSkinWeight(121, 100.0),
    548                 SetSkinWeight(142, 50.0),
    549                 SetSkinWeight(145, 80.0),
    550                 SetSkinWeight(146, 100.0),
    551                 SetSkinWeight(152, 90.0),
    552                 SetSkinWeight(158, 90.0),
    553                 SetSkinWeight(186, 100.0),
    554                 SetSkinWeight(240, 80.0),
    555                 SetSkinWeight(246, 100.0),
    556                 SetSkinWeight(247, 100.0),
    557                 SetSkinWeight(248, 50.0),
    558                 SetSkinWeight(249, 90.0),
    559                 SetSkinWeight(251, 100.0),
    560                 SetSkinWeight(303, 90.0),
    561                 SetSkinWeight(304, 100.0),
    562                 SetSkinWeight(305, 100.0),
    563                 SetSkinWeight(306, 100.0),
    564                 SetSkinWeight(335, 100.0),
    565                 SetSkinWeight(338, 100.0),
    566                 SetSkinWeight(345, 100.0),
    567                 SetSkinWeight(359, 90.0),
    568                 SetSkinWeight(365, 100.0),
    569                 SetSkinWeight(370, 80.0),
    570                 SetSkinWeight(401, 100.0),
    571                 SetSkinWeight(402, 100.0),
    572                 SetSkinWeight(403, 100.0),
    573                 SetSkinWeight(417, 80.0),
    574                 SetSkinWeight(125, 60.0),
    575                 SetSkinWeight(143, 50.0),
    576                 SetSkinWeight(270, 50.0),
    577                 SetSkinWeight(294, 60.0),
    578                 SetSkinWeight(239, 50.0),
    579                 SetSkinWeight(245, 50.0),
    580                 MakeAttachedJoint(DYNOBJ_MARIO_CAP_JOINT_2),  // What is this joint for?
    581                     SetScale(1.0, 1.0, 1.0),
    582                     SetRotation(0.0, 0.0, 0.0),
    583                     SetAttachOffset(528.3, 0.0, 0.0),
    584         EndNetWithSubGroup(DYNOBJ_MARIO_CAP_SKIN_NET),
    585 
    586         // right eye skinning
    587         MakeNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EYE_SKIN_NET),
    588             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    589             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    590             SetScale(1.0, 1.0, 1.0),
    591             SetRotation(90.0, 180.0, 0.0),
    592             SetAttachOffset(29.7, 192.4, -3.0),
    593             MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EYE_JOINT_1),
    594                 SetScale(1.0, 1.0, 1.0),
    595                 SetRotation(184.483, -178.885, 82.485),
    596                 SetAttachOffset(0.0, 0.0, 0.0),
    597                 MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EYE_JOINT_2),  // What is this joint for?
    598                     SetScale(1.0, 1.0, 1.0),
    599                     SetRotation(0.0, 0.0, 0.0),
    600                     SetAttachOffset(329.8, 0.0, 0.0),
    601         EndNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EYE_SKIN_NET),
    602         MakeDynObj(D_NET, DYNOBJ_MARIO_RIGHT_EYE_UNKNOWN_NET),
    603             SetType(3),
    604             SetShapePtr(DYNOBJ_MARIO_RIGHT_EYE_SHAPE),
    605             AttachTo(0xd, DYNOBJ_MARIO_RIGHT_EYE_JOINT_1),
    606             SetScale(1.0, 1.0, 1.0),
    607             SetRotation(0.0, 0.0, 0.0),
    608             SetAttachOffset(0.0, 0.0, 0.0),
    609 
    610         // left eye skinning
    611         MakeNetWithSubGroup(DYNOBJ_MARIO_LEFT_EYE_SKIN_NET),
    612             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    613             SetSkinShape(DYNOBJ_MARIO_FACE_SHAPE),
    614             SetScale(1.0, 1.0, 1.0),
    615             SetRotation(-90.0, 0.0, 0.0),
    616             SetAttachOffset(-29.0, 192.3, -2.0),
    617             MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EYE_JOINT_1),
    618                 SetScale(1.0, 1.0, 1.0),
    619                 SetRotation(-6.873, 0.206, -97.461),
    620                 SetAttachOffset(0.0, 0.0, 0.0),
    621                 SetSkinWeight(429, 16.0),
    622                 MakeAttachedJoint(DYNOMJ_MARIO_LEFT_EYE_JOINT_2),  // What is this joint for?
    623                     SetScale(1.0, 1.0, 1.0),
    624                     SetRotation(0.0, 0.0, 0.0),
    625                     SetAttachOffset(329.8, 0.0, 0.0),
    626         EndNetWithSubGroup(DYNOBJ_MARIO_LEFT_EYE_SKIN_NET),
    627         MakeDynObj(D_NET, DYNOBJ_MARIO_LEFT_EYE_UNKNOWN_NET),
    628             SetType(3),
    629             SetShapePtr(DYNOBJ_MARIO_LEFT_EYE_SHAPE),
    630             AttachTo(0xd, DYNOBJ_MARIO_LEFT_EYE_JOINT_1),
    631             SetScale(1.0, 1.0, 1.0),
    632             SetRotation(0.0, 0.0, 0.0),
    633             SetAttachOffset(0.0, 0.0, 0.0),
    634 
    635         // right eyebrow net (attaches to head)
    636         MakeDynObj(D_NET, DYNOBJ_MARIO_RIGHT_EYEBROW_NET),
    637             SetType(2),
    638             SetShapePtr(DYNOBJ_MARIO_RIGHT_EYEBROW_SHAPE),
    639             // attach right eyebrow to head
    640             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    641             SetScale(1.0, 1.0, 1.0),
    642             SetRotation(0.0, 0.0, 0.0),
    643             SetAttachOffset(20.8, 0.0, -8.5),
    644         // right part of right eyebrow skinning
    645         MakeNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EYEBROW_RPART_SKIN_NET),
    646             AttachTo(0xd, DYNOBJ_MARIO_RIGHT_EYEBROW_NET),
    647             SetSkinShape(DYNOBJ_MARIO_RIGHT_EYEBROW_SHAPE),
    648             SetScale(1.0, 1.0, 1.0),
    649             SetRotation(-90.0, 90.0, -90.0),
    650             SetAttachOffset(231.3, 287.1, -51.4),
    651             MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EYEBROW_RPART_JOINT_1),
    652                 SetScale(1.0, 1.0, 1.0),
    653                 SetRotation(10.886, 0.0, 177.51),
    654                 SetAttachOffset(0.0, 0.0, 0.0),
    655                 SetSkinWeight(5, 70.0),
    656                 SetSkinWeight(6, 80.0),
    657                 SetSkinWeight(7, 70.0),
    658                 SetSkinWeight(8, 50.0),
    659                 SetSkinWeight(11, 70.0),
    660                 SetSkinWeight(12, 100.0),
    661                 SetSkinWeight(19, 50.0),
    662                 SetSkinWeight(20, 80.0),
    663                 SetSkinWeight(23, 70.0),
    664                 MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EYEBROW_RPART_JOINT_2),  // What is this joint for?
    665                     SetScale(1.0, 1.0, 1.0),
    666                     SetRotation(0.0, 0.0, 0.0),
    667                     SetAttachOffset(345.5, 0.0, 0.0),
    668         EndNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EYEBROW_RPART_SKIN_NET),
    669         // left part of right eyebrow skinning
    670         MakeNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EYEBROW_LPART_SKIN_NET),
    671             AttachTo(0xd, DYNOBJ_MARIO_RIGHT_EYEBROW_NET),
    672             SetSkinShape(DYNOBJ_MARIO_RIGHT_EYEBROW_SHAPE),
    673             SetScale(1.0, 1.0, 1.0),
    674             SetRotation(-90.0, 90.0, -90.0),
    675             SetAttachOffset(23.0, 305.5, -44.6),
    676             MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EYEBROW_LPART_JOINT_1),
    677                 SetScale(1.0, 1.0, 1.0),
    678                 SetRotation(-3.437, -0.069, -177.758),
    679                 SetAttachOffset(0.0, 0.0, 0.0),
    680                 SetSkinWeight(16, 80.0),
    681                 SetSkinWeight(17, 100.0),
    682                 SetSkinWeight(18, 80.0),
    683                 SetSkinWeight(22, 70.0),
    684                 SetSkinWeight(24, 50.0),
    685                 SetSkinWeight(25, 80.0),
    686                 SetSkinWeight(15, 30.0),
    687                 MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EYEBROW_LPART_JOINT_2),  // What is this joint for?
    688                     SetScale(1.0, 1.0, 1.0),
    689                     SetRotation(0.0, 0.0, 0.0),
    690                     SetAttachOffset(399.5, 0.0, 0.0),
    691         EndNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EYEBROW_LPART_SKIN_NET),
    692         // middle part of right eyebrow skinning
    693         MakeNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EYEBROW_MPART_SKIN_NET),
    694             AttachTo(0xd, DYNOBJ_MARIO_RIGHT_EYEBROW_NET),
    695             SetSkinShape(DYNOBJ_MARIO_RIGHT_EYEBROW_SHAPE),
    696             SetScale(1.0, 1.0, 1.0),
    697             SetRotation(-90.0, 90.0, -90.0),
    698             SetAttachOffset(123.1, 385.5, -46.4),
    699             MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EYEBROW_MPART_JOINT_1),
    700                 SetScale(1.0, 1.0, 1.0),
    701                 SetRotation(2.865, 0.029, 182.377),
    702                 SetAttachOffset(0.0, 0.0, 0.0),
    703                 SetSkinWeight(0, 100.0),
    704                 SetSkinWeight(1, 100.0),
    705                 SetSkinWeight(2, 100.0),
    706                 SetSkinWeight(3, 100.0),
    707                 SetSkinWeight(4, 100.0),
    708                 SetSkinWeight(9, 100.0),
    709                 SetSkinWeight(10, 100.0),
    710                 SetSkinWeight(13, 100.0),
    711                 SetSkinWeight(14, 100.0),
    712                 SetSkinWeight(15, 70.0),
    713                 SetSkinWeight(21, 100.0),
    714                 SetSkinWeight(16, 20.0),
    715                 SetSkinWeight(18, 20.0),
    716                 SetSkinWeight(22, 30.0),
    717                 SetSkinWeight(25, 20.0),
    718                 SetSkinWeight(6, 20.0),
    719                 SetSkinWeight(11, 30.0),
    720                 SetSkinWeight(20, 20.0),
    721                 SetSkinWeight(23, 30.0),
    722                 SetSkinWeight(5, 30.0),
    723                 SetSkinWeight(7, 30.0),
    724                 SetSkinWeight(8, 50.0),
    725                 SetSkinWeight(19, 50.0),
    726                 SetSkinWeight(24, 50.0),
    727                 MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_EYEBROW_MPART_JOINT_2),  // What is this joint for?
    728                     SetScale(1.0, 1.0, 1.0),
    729                     SetRotation(0.0, 0.0, 0.0),
    730                     SetAttachOffset(388.6, 0.0, 0.0),
    731         EndNetWithSubGroup(DYNOBJ_MARIO_RIGHT_EYEBROW_MPART_SKIN_NET),
    732 
    733         // left eyebrow net (attaches to head)
    734         MakeDynObj(D_NET, DYNOBJ_MARIO_LEFT_EYEBROW_NET),
    735             SetType(2),
    736             SetShapePtr(DYNOBJ_MARIO_LEFT_EYEBROW_SHAPE),
    737             // attach left eyebrow to head
    738             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    739             SetScale(1.0, 1.0, 1.0),
    740             SetRotation(0.0, 0.0, 0.0),
    741             SetAttachOffset(-18.5, 0.0, -1.0),
    742         // left part of left eyebrow skinning
    743         MakeNetWithSubGroup(DYNOBJ_MARIO_LEFT_EYEBROW_LPART_SKIN_NET),
    744             AttachTo(0xd, DYNOBJ_MARIO_LEFT_EYEBROW_NET),
    745             SetSkinShape(DYNOBJ_MARIO_LEFT_EYEBROW_SHAPE),
    746             SetScale(1.0, 1.0, 1.0),
    747             SetRotation(0.0, 90.0, 0.0),
    748             SetAttachOffset(-233.6, 287.1, -51.4),
    749             MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EYEBROW_LPART_JOINT_1),
    750                 SetScale(1.0, 1.0, 1.0),
    751                 SetRotation(-6.876, 0.0, 177.51),
    752                 SetAttachOffset(0.0, 0.0, 0.0),
    753                 SetSkinWeight(9, 100.0),
    754                 SetSkinWeight(10, 80.0),
    755                 SetSkinWeight(11, 80.0),
    756                 SetSkinWeight(13, 80.0),
    757                 SetSkinWeight(14, 80.0),
    758                 SetSkinWeight(18, 60.0),
    759                 SetSkinWeight(21, 60.0),
    760                 SetSkinWeight(25, 60.0),
    761                 MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EYEBROW_LPART_JOINT_2),  // What is this joint for?
    762                     SetScale(1.0, 1.0, 1.0),
    763                     SetRotation(0.0, 0.0, 0.0),
    764                     SetAttachOffset(345.5, 0.0, 0.0),
    765         EndNetWithSubGroup(DYNOBJ_MARIO_LEFT_EYEBROW_LPART_SKIN_NET),
    766         // right part of left eyebrow skinning
    767         MakeNetWithSubGroup(DYNOBJ_MARIO_LEFT_EYEBROW_RPART_SKIN_NET),
    768             AttachTo(0xd, DYNOBJ_MARIO_LEFT_EYEBROW_NET),
    769             SetSkinShape(DYNOBJ_MARIO_LEFT_EYEBROW_SHAPE),
    770             SetScale(1.0, 1.0, 1.0),
    771             SetRotation(0.0, 90.0, 0.0),
    772             SetAttachOffset(-25.3, 305.5, -44.6),
    773             MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EYEBROW_RPART_JOINT_1),
    774                 SetScale(1.0, 1.0, 1.0),
    775                 SetRotation(-9.733, -0.388, -177.186),
    776                 SetAttachOffset(0.0, 0.0, 0.0),
    777                 SetSkinWeight(0, 70.0),
    778                 SetSkinWeight(1, 100.0),
    779                 SetSkinWeight(2, 70.0),
    780                 SetSkinWeight(3, 70.0),
    781                 SetSkinWeight(5, 50.0),
    782                 SetSkinWeight(12, 70.0),
    783                 SetSkinWeight(19, 30.0),
    784                 SetSkinWeight(15, 30.0),
    785                 MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EYEBROW_RPART_JOINT_2),  // What is this joint for?
    786                     SetScale(1.0, 1.0, 1.0),
    787                     SetRotation(0.0, 0.0, 0.0),
    788                     SetAttachOffset(399.5, 0.0, 0.0),
    789         EndNetWithSubGroup(DYNOBJ_MARIO_LEFT_EYEBROW_RPART_SKIN_NET),
    790         // middle part of left eyebrow skinning
    791         MakeNetWithSubGroup(DYNOBJ_MARIO_LEFT_EYEBROW_MPART_SKIN_NET),
    792             AttachTo(0xd, DYNOBJ_MARIO_LEFT_EYEBROW_NET),
    793             SetSkinShape(DYNOBJ_MARIO_LEFT_EYEBROW_SHAPE),
    794             SetScale(1.0, 1.0, 1.0),
    795             SetRotation(0.0, 90.0, 0.0),
    796             SetAttachOffset(-125.4, 385.5, -46.4),
    797             MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EYEBROW_MPART_JOINT_1),
    798                 SetScale(1.0, 1.0, 1.0),
    799                 SetRotation(-8.004, -0.61, 181.847),
    800                 SetAttachOffset(0.0, 0.0, 0.0),
    801                 SetSkinWeight(4, 70.0),
    802                 SetSkinWeight(6, 100.0),
    803                 SetSkinWeight(7, 100.0),
    804                 SetSkinWeight(8, 80.0),
    805                 SetSkinWeight(15, 70.0),
    806                 SetSkinWeight(16, 80.0),
    807                 SetSkinWeight(17, 100.0),
    808                 SetSkinWeight(19, 70.0),
    809                 SetSkinWeight(20, 80.0),
    810                 SetSkinWeight(22, 80.0),
    811                 SetSkinWeight(23, 60.0),
    812                 SetSkinWeight(24, 100.0),
    813                 SetSkinWeight(5, 50.0),
    814                 SetSkinWeight(0, 30.0),
    815                 SetSkinWeight(2, 30.0),
    816                 SetSkinWeight(10, 20.0),
    817                 SetSkinWeight(11, 20.0),
    818                 SetSkinWeight(13, 20.0),
    819                 SetSkinWeight(14, 20.0),
    820                 SetSkinWeight(18, 40.0),
    821                 SetSkinWeight(21, 40.0),
    822                 SetSkinWeight(25, 40.0),
    823                 SetSkinWeight(3, 30.0),
    824                 SetSkinWeight(12, 30.0),
    825                 MakeAttachedJoint(DYNOBJ_MARIO_LEFT_EYEBROW_MPART_JOINT_2),  // What is this joint for?
    826                     SetScale(1.0, 1.0, 1.0),
    827                     SetRotation(0.0, 0.0, 0.0),
    828                     SetAttachOffset(388.6, 0.0, 0.0),
    829         EndNetWithSubGroup(DYNOBJ_MARIO_LEFT_EYEBROW_MPART_SKIN_NET),
    830 
    831         // mustache net (attaches to head)
    832         MakeDynObj(D_NET, DYNOBJ_MARIO_MUSTACHE_NET),
    833             SetType(2),
    834             SetShapePtr(DYNOBJ_MARIO_MUSTACHE_SHAPE),
    835             // attach mustache to head
    836             AttachTo(0xd, DYNOBJ_MARIO_MAIN_NET),
    837             SetScale(1.0, 1.0, 1.0),
    838             SetRotation(0.02, -0.002, 0.04),
    839             SetAttachOffset(0.0, 0.0, 0.0),
    840         // left mustache skinning
    841         MakeNetWithSubGroup(DYNOBJ_MARIO_LEFT_MUSTACHE_SKIN_NET),
    842             AttachTo(0xd, DYNOBJ_MARIO_MUSTACHE_NET),
    843             SetSkinShape(DYNOBJ_MARIO_MUSTACHE_SHAPE),
    844             SetScale(1.0, 1.0, 1.0),
    845             SetRotation(0.0, 180.0, 0.0),
    846             SetAttachOffset(4.2, -86.5, 415.5),
    847             MakeAttachedJoint(DYNOBJ_MARIO_LEFT_MUSTACHE_JOINT_1),
    848                 SetScale(1.0, 1.0, 1.0),
    849                 SetRotation(-179.98, -164.53, -29.34),
    850                 SetAttachOffset(0.0, 0.0, 0.0),
    851                 SetSkinWeight(3, 50.0),
    852                 SetSkinWeight(4, 50.0),
    853                 SetSkinWeight(5, 50.0),
    854                 SetSkinWeight(11, 70.0),
    855                 SetSkinWeight(12, 80.0),
    856                 SetSkinWeight(13, 70.0),
    857                 SetSkinWeight(18, 80.0),
    858                 SetSkinWeight(19, 80.0),
    859                 SetSkinWeight(20, 80.0),
    860                 SetSkinWeight(21, 100.0),
    861                 SetSkinWeight(22, 100.0),
    862                 SetSkinWeight(23, 100.0),
    863                 SetSkinWeight(25, 100.0),
    864                 SetSkinWeight(27, 100.0),
    865                 SetSkinWeight(28, 50.0),
    866                 SetSkinWeight(29, 40.0),
    867                 SetSkinWeight(30, 40.0),
    868                 SetSkinWeight(31, 100.0),
    869                 SetSkinWeight(36, 50.0),
    870                 SetSkinWeight(37, 50.0),
    871                 SetSkinWeight(42, 40.0),
    872                 SetSkinWeight(45, 50.0),
    873                 SetSkinWeight(46, 50.0),
    874                 SetSkinWeight(47, 80.0),
    875                 SetSkinWeight(50, 40.0),
    876                 SetSkinWeight(51, 100.0),
    877                 SetSkinWeight(53, 40.0),
    878                 SetSkinWeight(54, 80.0),
    879                 MakeAttachedJoint(DYNOBJ_MARIO_LEFT_MUSTACHE_JOINT_2),  // What is this joint for?
    880                     SetScale(1.0, 1.0, 1.0),
    881                     SetRotation(-0.028, 0.0, 0.02),
    882                     SetAttachOffset(292.7, 0.0, 0.0),
    883         EndNetWithSubGroup(DYNOBJ_MARIO_LEFT_MUSTACHE_SKIN_NET),
    884         // right mustache skinning
    885         MakeNetWithSubGroup(DYNOBJ_MARIO_RIGHT_MUSTACHE_SKIN_NET),
    886             AttachTo(0xd, DYNOBJ_MARIO_MUSTACHE_NET),
    887             SetSkinShape(DYNOBJ_MARIO_MUSTACHE_SHAPE),
    888             SetScale(1.0, 1.0, 1.0),
    889             SetRotation(0.0, 0.0, 0.0),
    890             SetAttachOffset(-4.2, -86.5, 415.5),
    891             MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_MUSTACHE_JOINT_1),
    892                 SetScale(1.0, 1.0, 1.0),
    893                 SetRotation(0.0, 15.47, 150.66),
    894                 SetAttachOffset(0.0, 0.0, 0.0),
    895                 SetSkinWeight(0, 100.0),
    896                 SetSkinWeight(1, 80.0),
    897                 SetSkinWeight(2, 80.0),
    898                 SetSkinWeight(6, 100.0),
    899                 SetSkinWeight(7, 100.0),
    900                 SetSkinWeight(8, 50.0),
    901                 SetSkinWeight(9, 50.0),
    902                 SetSkinWeight(10, 50.0),
    903                 SetSkinWeight(14, 50.0),
    904                 SetSkinWeight(15, 50.0),
    905                 SetSkinWeight(16, 50.0),
    906                 SetSkinWeight(17, 80.0),
    907                 SetSkinWeight(24, 100.0),
    908                 SetSkinWeight(26, 100.0),
    909                 SetSkinWeight(32, 80.0),
    910                 SetSkinWeight(33, 100.0),
    911                 SetSkinWeight(34, 70.0),
    912                 SetSkinWeight(35, 50.0),
    913                 SetSkinWeight(38, 40.0),
    914                 SetSkinWeight(39, 40.0),
    915                 SetSkinWeight(40, 40.0),
    916                 SetSkinWeight(41, 50.0),
    917                 SetSkinWeight(43, 50.0),
    918                 SetSkinWeight(44, 50.0),
    919                 SetSkinWeight(48, 80.0),
    920                 SetSkinWeight(49, 70.0),
    921                 SetSkinWeight(52, 40.0),
    922                 SetSkinWeight(55, 80.0),
    923                 MakeAttachedJoint(DYNOBJ_MARIO_RIGHT_MUSTACHE_JOINT_2),  // What is this joint for?
    924                     SetScale(1.0, 1.0, 1.0),
    925                     SetRotation(0.0, 0.0, 0.0),
    926                     SetAttachOffset(292.7, 0.0, 0.0),
    927         EndNetWithSubGroup(DYNOBJ_MARIO_RIGHT_MUSTACHE_SKIN_NET),
    928 
    929         // right mustache animator
    930         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_RIGHT_MUSTACHE_ANIMDATA_GROUP),
    931             LinkWithPtr(&anim_mario_mustache_right),
    932         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_RIGHT_MUSTACHE_ANIMATOR),
    933             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    934             SetNodeGroup(DYNOBJ_MARIO_RIGHT_MUSTACHE_ANIMDATA_GROUP),
    935             LinkWith(DYNOBJ_MARIO_RIGHT_MUSTACHE_JOINT_1),
    936 
    937         // left mustache animator
    938         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_LEFT_MUSTACHE_ANIMDATA_GROUP),
    939             LinkWithPtr(&anim_mario_mustache_left),
    940         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_LEFT_MUSTACHE_ANIMATOR),
    941             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    942             SetNodeGroup(DYNOBJ_MARIO_LEFT_MUSTACHE_ANIMDATA_GROUP),
    943             LinkWith(DYNOBJ_MARIO_LEFT_MUSTACHE_JOINT_1),
    944 
    945         // left eyebrow animators
    946         MakeDynObj(D_DATA_GRP, 32),
    947             LinkWithPtr(&anim_mario_lips_1),
    948         MakeDynObj(D_ANIMATOR, 33),
    949             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    950             SetNodeGroup(32),
    951             LinkWith(DYNOBJ_MARIO_LEFT_EYEBROW_MPART_JOINT_1),
    952         MakeDynObj(D_DATA_GRP, 41),
    953             LinkWithPtr(&anim_mario_lips_2),
    954         MakeDynObj(D_ANIMATOR, 42),
    955             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    956             SetNodeGroup(41),
    957             LinkWith(DYNOBJ_MARIO_LEFT_EYEBROW_RPART_JOINT_1),
    958         MakeDynObj(D_DATA_GRP, 50),
    959             LinkWithPtr(&anim_mario_eyebrows_1),
    960         MakeDynObj(D_ANIMATOR, 51),
    961             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    962             SetNodeGroup(50),
    963             LinkWith(DYNOBJ_MARIO_LEFT_EYEBROW_LPART_JOINT_1),
    964 
    965         // right eyebrow animators
    966         MakeDynObj(D_DATA_GRP, 63),
    967             LinkWithPtr(&anim_mario_eyebrows_equalizer),
    968         MakeDynObj(D_ANIMATOR, 64),
    969             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    970             SetNodeGroup(63),
    971             LinkWith(DYNOBJ_MARIO_RIGHT_EYEBROW_MPART_JOINT_2),
    972         MakeDynObj(D_DATA_GRP, 66),
    973             LinkWithPtr(&anim_mario_eyebrows_2),
    974         MakeDynObj(D_ANIMATOR, 67),
    975             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    976             SetNodeGroup(66),
    977             LinkWith(DYNOBJ_MARIO_RIGHT_EYEBROW_MPART_JOINT_1),
    978         MakeDynObj(D_DATA_GRP, 72),
    979             LinkWithPtr(&anim_mario_eyebrows_3),
    980         MakeDynObj(D_ANIMATOR, 73),
    981             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    982             SetNodeGroup(72),
    983             LinkWith(DYNOBJ_MARIO_RIGHT_EYEBROW_LPART_JOINT_2),
    984         MakeDynObj(D_DATA_GRP, 75),
    985             LinkWithPtr(&anim_mario_eyebrows_4),
    986         MakeDynObj(D_ANIMATOR, 76),
    987             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    988             SetNodeGroup(75),
    989             LinkWith(DYNOBJ_MARIO_RIGHT_EYEBROW_LPART_JOINT_1),
    990         MakeDynObj(D_DATA_GRP, 84),
    991             LinkWithPtr(&anim_mario_eyebrows_5),
    992         MakeDynObj(D_ANIMATOR, 85),
    993             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
    994             SetNodeGroup(84),
    995             LinkWith(DYNOBJ_MARIO_RIGHT_EYEBROW_RPART_JOINT_1),
    996 
    997         // left eye animator
    998         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_LEFT_EYE_ANIMDATA_GROUP),
    999             LinkWithPtr(&anim_mario_eye_left),
   1000         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_LEFT_EYE_ANIMATOR),
   1001             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1002             SetNodeGroup(DYNOBJ_MARIO_LEFT_EYE_ANIMDATA_GROUP),
   1003             LinkWith(DYNOBJ_MARIO_LEFT_EYE_JOINT_1),
   1004 
   1005         // right eye animator
   1006         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_RIGHT_EYE_ANIMDATA_GROUP),
   1007             LinkWithPtr(&anim_mario_eye_right),
   1008         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_RIGHT_EYE_ANIMATOR),
   1009             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1010             SetNodeGroup(DYNOBJ_MARIO_RIGHT_EYE_ANIMDATA_GROUP),
   1011             LinkWith(DYNOBJ_MARIO_RIGHT_EYE_JOINT_1),
   1012 
   1013         // cap animator
   1014         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_CAP_ANIMDATA_GROUP),
   1015             LinkWithPtr(&anim_mario_cap),
   1016         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_CAP_ANIMATOR),
   1017             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1018             SetNodeGroup(DYNOBJ_MARIO_CAP_ANIMDATA_GROUP),
   1019             LinkWith(DYNOBJ_MARIO_CAP_JOINT_1),
   1020 
   1021         // left lip corner animator
   1022         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_LEFT_LIP_CORNER_ANIMDATA_GROUP),
   1023             LinkWithPtr(&anim_mario_lips_3),
   1024         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_LEFT_LIP_CORNER_ANIMATOR),
   1025             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1026             SetNodeGroup(DYNOBJ_MARIO_LEFT_LIP_CORNER_ANIMDATA_GROUP),
   1027             LinkWith(DYNOBJ_MARIO_LEFT_LIP_CORNER_JOINT_1),
   1028 
   1029         // right lip corner animator
   1030         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_RIGHT_LIP_CORNER_ANIMDATA_GROUP),
   1031             LinkWithPtr(&anim_mario_lips_4),
   1032         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_RIGHT_LIP_CORNER_ANIMATOR),
   1033             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1034             SetNodeGroup(DYNOBJ_MARIO_RIGHT_LIP_CORNER_ANIMDATA_GROUP),
   1035             LinkWith(DYNOBJ_MARIO_RIGHT_LIP_CORNER_JOINT_1),
   1036 
   1037         // left ear animator
   1038         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_LEFT_EAR_ANIMDATA_GROUP),
   1039             LinkWithPtr(&anim_mario_ear_left),
   1040         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_LEFT_EAR_ANIMATOR),
   1041             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1042             SetNodeGroup(DYNOBJ_MARIO_LEFT_EAR_ANIMDATA_GROUP),
   1043             LinkWith(DYNOBJ_MARIO_LEFT_EAR_JOINT_1),
   1044 
   1045         // right ear animator
   1046         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_RIGHT_EAR_ANIMADATA_GROUP),
   1047             LinkWithPtr(&anim_mario_ear_right),
   1048         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_RIGHT_EAR_ANIMATOR),
   1049             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1050             SetNodeGroup(DYNOBJ_MARIO_RIGHT_EAR_ANIMADATA_GROUP),
   1051             LinkWith(DYNOBJ_MARIO_RIGHT_EAR_JOINT_1),
   1052 
   1053         // nose animator
   1054         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_NOSE_ANIMDATA_GROUP),
   1055             LinkWithPtr(&anim_mario_nose),
   1056         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_NOSE_ANIMATOR),
   1057             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1058             SetNodeGroup(DYNOBJ_MARIO_NOSE_ANIMDATA_GROUP),
   1059             LinkWith(DYNOBJ_MARIO_NOSE_JOINT_1),
   1060 
   1061         // animator for left side of jaw
   1062         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_LEFT_JAW_ANIMDATA_GROUP),
   1063             LinkWithPtr(&anim_mario_lips_5),
   1064         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_LEFT_JAW_ANIMATOR),
   1065             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1066             SetNodeGroup(DYNOBJ_MARIO_LEFT_JAW_ANIMDATA_GROUP),
   1067             LinkWith(DYNOBJ_MARIO_LEFT_JAW_JOINT),
   1068 
   1069         // animator for right side of jaw
   1070         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_RIGHT_JAW_ANIMDATA_GROUP),
   1071             LinkWithPtr(&anim_mario_lips_6),
   1072         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_RIGHT_JAW_ANIMATOR),
   1073             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1074             SetNodeGroup(DYNOBJ_MARIO_RIGHT_JAW_ANIMDATA_GROUP),
   1075             LinkWith(DYNOBJ_MARIO_RIGHT_JAW_JOINT),
   1076 
   1077         // left eyelid animator
   1078         MakeDynObj(D_DATA_GRP, DYNOBJ_LEFT_EYELID_ANIMDATA_GROUP),
   1079             LinkWithPtr(&anim_mario_eyelid_left),
   1080         MakeDynObj(D_ANIMATOR, DYNOBJ_LEFT_EYELID_ANIMATOR),
   1081             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1082             SetNodeGroup(DYNOBJ_LEFT_EYELID_ANIMDATA_GROUP),
   1083             LinkWith(DYNOBJ_LEFT_EYELID_JOINT_1),
   1084 
   1085         // right eyelid animator
   1086         MakeDynObj(D_DATA_GRP, DYNOBJ_RIGHT_EYELID_ANIMDATA_GROUP),
   1087             LinkWithPtr(&anim_mario_eyelid_right),
   1088         MakeDynObj(D_ANIMATOR, DYNOBJ_RIGHT_EYELID_ANIMATOR),
   1089             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1090             SetNodeGroup(DYNOBJ_RIGHT_EYELID_ANIMDATA_GROUP),
   1091             LinkWith(DYNOBJ_RIGHT_EYELID_JOINT_1),
   1092 
   1093         // whole head animator?
   1094         MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_HEAD_ANIMDATA_GROUP),
   1095             LinkWithPtr(&anim_mario_intro),
   1096         MakeDynObj(D_ANIMATOR, DYNOBJ_MARIO_HEAD_ANIMATOR),
   1097             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1098             SetNodeGroup(DYNOBJ_MARIO_HEAD_ANIMDATA_GROUP),
   1099             LinkWith(DYNOBJ_MARIO_MAIN_NET),
   1100 
   1101         // silver star animator
   1102         MakeDynObj(D_DATA_GRP, DYNOBJ_SILVER_STAR_ANIMDATA_GROUP),
   1103             LinkWithPtr(&anim_silver_star),
   1104         MakeDynObj(D_ANIMATOR, DYNOBJ_SILVER_STAR_ANIMATOR),
   1105             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1106             SetNodeGroup(DYNOBJ_SILVER_STAR_ANIMDATA_GROUP),
   1107             LinkWith(DYNOBJ_SILVER_STAR_LIGHT),
   1108 
   1109         // red star animator
   1110         MakeDynObj(D_DATA_GRP, DYNOBJ_RED_STAR_ANIMDATA_GROUP),
   1111             LinkWithPtr(&anim_red_star),
   1112         MakeDynObj(D_ANIMATOR, DYNOBJ_RED_STAR_ANIMATOR),
   1113             AttachTo(0x0, DYNOBJ_MARIO_MAIN_ANIMATOR),
   1114             SetNodeGroup(DYNOBJ_RED_STAR_ANIMDATA_GROUP),
   1115             LinkWith(DYNOBJ_RED_STAR_LIGHT),
   1116 
   1117     EndGroup(0x1),
   1118 
   1119     UseObj(0x1),
   1120 
   1121     UseIntegerNames(FALSE),
   1122     EndList(),
   1123 };