summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorballoondude2 <55861555+balloondude2@users.noreply.github.com>2025-07-09 13:03:42 -0600
committerGitHub <noreply@github.com>2025-07-09 15:03:42 -0400
commit2e63d7168e167e44547d151e71cb4bd580f50d8a (patch)
treea0158ac9969307db6d82b7ae56703c1fdd3faac9
parente714630599ba0f03b3375ed3fae50d92629d7a28 (diff)
Add Rando Grass Model Fade-In (#1174)
* grass fade in proof of concept * finish rest of models
-rw-r--r--mm/2s2h/GameInteractor/GameInteractor.h3
-rw-r--r--mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp72
-rw-r--r--mm/assets/2s2h_assets.h30
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushBossKeyXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushFairyXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushHeartXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushJunkXluDL10
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushMajorXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushMaskXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushMinorXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushRandomXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushSmallKeyXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/gFieldBushTokenXluDL14
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_flower_bosskey15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_flower_fairy15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_flower_heart15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushJunkXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_flower_gold15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_flower_mask15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_flower_bronze15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_flower_random15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_flower_silver15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_shrubbery15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_flower_token15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_leaf15
-rw-r--r--mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_shrubbery15
-rw-r--r--mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c20
42 files changed, 668 insertions, 13 deletions
diff --git a/mm/2s2h/GameInteractor/GameInteractor.h b/mm/2s2h/GameInteractor/GameInteractor.h
index be58335f1..1a370ef85 100644
--- a/mm/2s2h/GameInteractor/GameInteractor.h
+++ b/mm/2s2h/GameInteractor/GameInteractor.h
@@ -186,7 +186,8 @@ typedef enum {
VB_POT_DRAW_BE_OVERRIDDEN,
VB_CRATE_DRAW_BE_OVERRIDDEN,
VB_KUSA_BUSH_DRAW_BE_OVERRIDDEN,
- VB_OBJGRASS_DRAW_BE_OVERRIDDEN,
+ VB_OBJGRASS_OPA_DRAW_BE_OVERRIDDEN,
+ VB_OBJGRASS_XLU_DRAW_BE_OVERRIDDEN,
VB_CARRY_GRASS_DRAW_BE_OVERRIDDEN,
VB_HAVE_MAGIC_FOR_TINGLE,
VB_GIVE_KEATON_MASK,
diff --git a/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp b/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp
index 34c8aef87..fc85be481 100644
--- a/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp
+++ b/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp
@@ -1123,7 +1123,49 @@ Gfx* GetObjGrassDList(RandoCheckId randoCheckId) {
}
}
-void ObjGrass_RandoDraw(ObjGrass* objGrass, ObjGrassElement* grassElem, s32 j, RandoCheckId randoCheckId) {
+Gfx* GetObjGrassXluDList(RandoCheckId randoCheckId) {
+ if (!CVarGetInteger("gRando.CSMC", 0)) {
+ return (Gfx*)gRandoBushXluDL;
+ }
+
+ RandoItemId randoItemId = Rando::ConvertItem(RANDO_SAVE_CHECKS[randoCheckId].randoItemId, randoCheckId);
+ RandoItemType randoItemType = Rando::StaticData::Items[randoItemId].randoItemType;
+
+ switch (randoItemType) {
+ case RITYPE_BOSS_KEY:
+ return (Gfx*)gRandoBushBossKeyXluDL;
+ break;
+ case RITYPE_HEALTH:
+ return (Gfx*)gRandoBushHeartXluDL;
+ break;
+ case RITYPE_LESSER:
+ return (Gfx*)gRandoBushMinorXluDL;
+ break;
+ case RITYPE_MAJOR:
+ return (Gfx*)gRandoBushMajorXluDL;
+ break;
+ case RITYPE_MASK:
+ return (Gfx*)gRandoBushMaskXluDL;
+ break;
+ case RITYPE_SKULLTULA_TOKEN:
+ return (Gfx*)gRandoBushTokenXluDL;
+ break;
+ case RITYPE_SMALL_KEY:
+ return (Gfx*)gRandoBushSmallKeyXluDL;
+ break;
+ case RITYPE_STRAY_FAIRY:
+ return (Gfx*)gRandoBushFairyXluDL;
+ break;
+ case RITYPE_JUNK:
+ return (Gfx*)gRandoBushJunkXluDL;
+ break;
+ default:
+ return (Gfx*)gRandoBushXluDL;
+ break;
+ }
+}
+
+void ObjGrass_RandoDrawOpa(ObjGrass* objGrass, ObjGrassElement* grassElem, s32 j, RandoCheckId randoCheckId) {
Vec3s rot = { 0, 0, 0 };
OPEN_DISPS(gPlayState->state.gfxCtx);
rot.y = grassElem->rotY;
@@ -1139,6 +1181,20 @@ void ObjGrass_RandoDraw(ObjGrass* objGrass, ObjGrassElement* grassElem, s32 j, R
CLOSE_DISPS(gPlayState->state.gfxCtx);
}
+void ObjGrass_RandoDrawXlu(ObjGrass* objGrass, ObjGrassElement* grassElem, RandoCheckId randoCheckId) {
+ Vec3s rot = { 0, 0, 0 };
+ OPEN_DISPS(gPlayState->state.gfxCtx);
+ rot.y = grassElem->rotY;
+ Matrix_SetTranslateRotateYXZ(grassElem->pos.x, grassElem->pos.y, grassElem->pos.z, &rot);
+ Matrix_Scale(objGrass->actor.scale.x, objGrass->actor.scale.y, objGrass->actor.scale.z, MTXMODE_APPLY);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gPlayState->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, grassElem->alpha);
+ gSPDisplayList(POLY_XLU_DISP++, GetObjGrassXluDList(randoCheckId));
+ gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gObjGrass_D_809AAA68);
+ CLOSE_DISPS(gPlayState->state.gfxCtx);
+}
+
void Rando::ActorBehavior::InitObjGrassBehavior() {
COND_ID_HOOK(OnActorInit, ACTOR_EN_KUSA, IS_RANDO, [](Actor* actor) {
RandoCheckId randoCheckId = IdentifyGrass(actor->home.pos);
@@ -1161,14 +1217,24 @@ void Rando::ActorBehavior::InitObjGrassBehavior() {
}
});
- COND_VB_SHOULD(VB_OBJGRASS_DRAW_BE_OVERRIDDEN, IS_RANDO, {
+ COND_VB_SHOULD(VB_OBJGRASS_OPA_DRAW_BE_OVERRIDDEN, IS_RANDO, {
ObjGrass* objGrass = va_arg(args, ObjGrass*);
ObjGrassElement* grassElem = va_arg(args, ObjGrassElement*);
s32 j = va_arg(args, s32);
RandoCheckId randoCheckId = IdentifyGrass(grassElem->pos);
if (randoCheckId != RC_UNKNOWN) {
*should = false;
- ObjGrass_RandoDraw(objGrass, grassElem, j, randoCheckId);
+ ObjGrass_RandoDrawOpa(objGrass, grassElem, j, randoCheckId);
+ }
+ });
+
+ COND_VB_SHOULD(VB_OBJGRASS_XLU_DRAW_BE_OVERRIDDEN, IS_RANDO, {
+ ObjGrass* objGrass = va_arg(args, ObjGrass*);
+ ObjGrassElement* grassElem = va_arg(args, ObjGrassElement*);
+ RandoCheckId randoCheckId = IdentifyGrass(grassElem->pos);
+ if (randoCheckId != RC_UNKNOWN) {
+ *should = false;
+ ObjGrass_RandoDrawXlu(objGrass, grassElem, randoCheckId);
}
});
diff --git a/mm/assets/2s2h_assets.h b/mm/assets/2s2h_assets.h
index 85cf18b51..61e7effbd 100644
--- a/mm/assets/2s2h_assets.h
+++ b/mm/assets/2s2h_assets.h
@@ -302,33 +302,63 @@ static const ALIGN_ASSET(2) char gBarrelJunkDL[] = dgBarrelJunkDL;
#define dgRandoBushDL "__OTR__objects/gameplay_field_keep/gFieldBushRandomDL"
static const ALIGN_ASSET(2) char gRandoBushDL[] = dgRandoBushDL;
+#define dgRandoBushXluDL "__OTR__objects/gameplay_field_keep/gFieldBushRandomXluDL"
+static const ALIGN_ASSET(2) char gRandoBushXluDL[] = dgRandoBushXluDL;
+
#define dgRandoBushMinorDL "__OTR__objects/gameplay_field_keep/gFieldBushMinorDL"
static const ALIGN_ASSET(2) char gRandoBushMinorDL[] = dgRandoBushMinorDL;
+#define dgRandoBushMinorXluDL "__OTR__objects/gameplay_field_keep/gFieldBushMinorXluDL"
+static const ALIGN_ASSET(2) char gRandoBushMinorXluDL[] = dgRandoBushMinorXluDL;
+
#define dgRandoBushMajorDL "__OTR__objects/gameplay_field_keep/gFieldBushMajorDL"
static const ALIGN_ASSET(2) char gRandoBushMajorDL[] = dgRandoBushMajorDL;
+#define dgRandoBushMajorXluDL "__OTR__objects/gameplay_field_keep/gFieldBushMajorXluDL"
+static const ALIGN_ASSET(2) char gRandoBushMajorXluDL[] = dgRandoBushMajorXluDL;
+
#define dgRandoBushSmallKeyDL "__OTR__objects/gameplay_field_keep/gFieldBushSmallKeyDL"
static const ALIGN_ASSET(2) char gRandoBushSmallKeyDL[] = dgRandoBushSmallKeyDL;
+#define dgRandoBushSmallKeyXluDL "__OTR__objects/gameplay_field_keep/gFieldBushSmallKeyXluDL"
+static const ALIGN_ASSET(2) char gRandoBushSmallKeyXluDL[] = dgRandoBushSmallKeyXluDL;
+
#define dgRandoBushBossKeyDL "__OTR__objects/gameplay_field_keep/gFieldBushBossKeyDL"
static const ALIGN_ASSET(2) char gRandoBushBossKeyDL[] = dgRandoBushBossKeyDL;
+#define dgRandoBushBossKeyXluDL "__OTR__objects/gameplay_field_keep/gFieldBushBossKeyXluDL"
+static const ALIGN_ASSET(2) char gRandoBushBossKeyXluDL[] = dgRandoBushBossKeyXluDL;
+
#define dgRandoBushTokenDL "__OTR__objects/gameplay_field_keep/gFieldBushTokenDL"
static const ALIGN_ASSET(2) char gRandoBushTokenDL[] = dgRandoBushTokenDL;
+#define dgRandoBushTokenXluDL "__OTR__objects/gameplay_field_keep/gFieldBushTokenXluDL"
+static const ALIGN_ASSET(2) char gRandoBushTokenXluDL[] = dgRandoBushTokenXluDL;
+
#define dgRandoBushMaskDL "__OTR__objects/gameplay_field_keep/gFieldBushMaskDL"
static const ALIGN_ASSET(2) char gRandoBushMaskDL[] = dgRandoBushMaskDL;
+#define dgRandoBushMaskXluDL "__OTR__objects/gameplay_field_keep/gFieldBushMaskXluDL"
+static const ALIGN_ASSET(2) char gRandoBushMaskXluDL[] = dgRandoBushMaskXluDL;
+
#define dgRandoBushFairyDL "__OTR__objects/gameplay_field_keep/gFieldBushFairyDL"
static const ALIGN_ASSET(2) char gRandoBushFairyDL[] = dgRandoBushFairyDL;
+#define dgRandoBushFairyXluDL "__OTR__objects/gameplay_field_keep/gFieldBushFairyXluDL"
+static const ALIGN_ASSET(2) char gRandoBushFairyXluDL[] = dgRandoBushFairyXluDL;
+
#define dgRandoBushHeartDL "__OTR__objects/gameplay_field_keep/gFieldBushHeartDL"
static const ALIGN_ASSET(2) char gRandoBushHeartDL[] = dgRandoBushHeartDL;
+#define dgRandoBushHeartXluDL "__OTR__objects/gameplay_field_keep/gFieldBushHeartXluDL"
+static const ALIGN_ASSET(2) char gRandoBushHeartXluDL[] = dgRandoBushHeartXluDL;
+
#define dgRandoBushJunkDL "__OTR__objects/gameplay_field_keep/gFieldBushJunkDL"
static const ALIGN_ASSET(2) char gRandoBushJunkDL[] = dgRandoBushJunkDL;
+#define dgRandoBushJunkXluDL "__OTR__objects/gameplay_field_keep/gFieldBushJunkXluDL"
+static const ALIGN_ASSET(2) char gRandoBushJunkXluDL[] = dgRandoBushJunkXluDL;
+
#define dgChestTrackerIcon "__OTR__textures/icons/gChestTrackerIcon"
static const ALIGN_ASSET(2) char gChestTrackerIcon[] = dgChestTrackerIcon;
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushBossKeyXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushBossKeyXluDL
new file mode 100644
index 000000000..7c7210c2d
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushBossKeyXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_flower_bosskey"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushFairyXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushFairyXluDL
new file mode 100644
index 000000000..301c9ad18
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushFairyXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushFairyDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushFairyDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_flower_fairy"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushFairyDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushHeartXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushHeartXluDL
new file mode 100644
index 000000000..3b20160ba
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushHeartXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushHeartDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushHeartDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_flower_heart"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushHeartDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushJunkXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushJunkXluDL
new file mode 100644
index 000000000..3b5496047
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushJunkXluDL
@@ -0,0 +1,10 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushJunkDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushJunkXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushJunkDL_tri_0"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMajorXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMajorXluDL
new file mode 100644
index 000000000..2451b4c5f
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMajorXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMajorDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMajorDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_flower_gold"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMajorDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMaskXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMaskXluDL
new file mode 100644
index 000000000..2b99dbcf4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMaskXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushMaskDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMaskDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMaskDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_flower_mask"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMaskDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMinorXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMinorXluDL
new file mode 100644
index 000000000..767e0cba7
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushMinorXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushMinorDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMinorDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMinorDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_flower_bronze"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMinorDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushRandomXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushRandomXluDL
new file mode 100644
index 000000000..ce29dfb9a
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushRandomXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushRandomDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushRandomDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushRandomDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_flower_random"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushRandomDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushSmallKeyXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushSmallKeyXluDL
new file mode 100644
index 000000000..4a9e6be52
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushSmallKeyXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushSmallKeyDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushSmallKeyDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushSmallKeyDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_flower_silver"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushSmallKeyDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/gFieldBushTokenXluDL b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushTokenXluDL
new file mode 100644
index 000000000..93b7e9a5f
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/gFieldBushTokenXluDL
@@ -0,0 +1,14 @@
+<DisplayList Version="0">
+ <ClearGeometryMode G_LIGHTING="1" />
+ <LoadVertices Path="objects/gameplay_field_keep/gFieldBushTokenDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
+ <SetGeometryMode G_LIGHTING="1" />
+ <CullDisplayList Start="0" End="7"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_shrubbery"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushTokenDL_tri_0"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_leaf"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushTokenDL_tri_1"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_flower_token"/>
+ <CallDisplayList Path="objects/gameplay_field_keep/gFieldBushTokenDL_tri_2"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_flower_bosskey b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_flower_bosskey
new file mode 100644
index 000000000..d554921d2
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_flower_bosskey
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_bosskey_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..085198123
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushBossKeyXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_flower_fairy b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_flower_fairy
new file mode 100644
index 000000000..eb643bb3f
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_flower_fairy
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_fairy_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..235d3ec1f
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushFairyXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1"/>
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_flower_heart b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_flower_heart
new file mode 100644
index 000000000..302b45e68
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_flower_heart
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_heart_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..085198123
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushHeartXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushJunkXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushJunkXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..085198123
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushJunkXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_flower_gold b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_flower_gold
new file mode 100644
index 000000000..742349531
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_flower_gold
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_gold_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..085198123
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMajorXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_flower_mask b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_flower_mask
new file mode 100644
index 000000000..6bd6a74d2
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_flower_mask
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_mask_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..085198123
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMaskXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_flower_bronze b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_flower_bronze
new file mode 100644
index 000000000..18f10f736
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_flower_bronze
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_bronze_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..235d3ec1f
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushMinorXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1"/>
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_flower_random b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_flower_random
new file mode 100644
index 000000000..4ba4d66bd
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_flower_random
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1"/>
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_random_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..f14091b70
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushRandomXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1"/>
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_flower_silver b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_flower_silver
new file mode 100644
index 000000000..bdd06548f
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_flower_silver
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_silver_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..085198123
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushSmallKeyXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_flower_token b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_flower_token
new file mode 100644
index 000000000..59420c100
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_flower_token
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/flower_token_tex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_leaf b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_leaf
new file mode 100644
index 000000000..0340298f4
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_leaf
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_0" Ac0="G_ACMUX_PRIMITIVE" Ad0="G_ACMUX_0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/LeafTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="255" Dxt="512"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="4" ShiftS="0" MaskT="4" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="60" Lrt="60"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_shrubbery b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_shrubbery
new file mode 100644
index 000000000..085198123
--- /dev/null
+++ b/mm/assets/custom/objects/gameplay_field_keep/mat_gFieldBushTokenXluDL_f3dlite_shrubbery
@@ -0,0 +1,15 @@
+<DisplayList Version="0">
+ <SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
+ <PipeSync/>
+ <SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_TEXEL0" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
+ <SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
+ <SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
+ <Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
+ <SetTextureImage Path="objects/gameplay_field_keep/BushTex.rgba16" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
+ <LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
+ <SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
+ <SetTileSize T="0" Uls="0" Ult="0" Lrs="128" Lrt="128"/>
+ <EndDisplayList/>
+</DisplayList>
+
diff --git a/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c b/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c
index cc760dc05..d7a3c6776 100644
--- a/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c
+++ b/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c
@@ -492,7 +492,7 @@ void ObjGrass_DrawOpa(Actor* thisx, PlayState* play2) {
if ((grassElem->flags & OBJ_GRASS_ELEM_DRAW) && (grassElem->alpha == 255)) {
FrameInterpolation_RecordOpenChild(grassElem, 0);
- if (GameInteractor_Should(VB_OBJGRASS_DRAW_BE_OVERRIDDEN, true, this, grassElem, j)) {
+ if (GameInteractor_Should(VB_OBJGRASS_OPA_DRAW_BE_OVERRIDDEN, true, this, grassElem, j)) {
rot.y = grassElem->rotY;
Matrix_SetTranslateRotateYXZ(grassElem->pos.x, grassElem->pos.y, grassElem->pos.z, &rot);
Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY);
@@ -536,14 +536,16 @@ void ObjGrass_DrawXlu(Actor* thisx, PlayState* play) {
if ((grassElem->flags & OBJ_GRASS_ELEM_DRAW) && (grassElem->alpha > 0) && (grassElem->alpha < 255)) {
FrameInterpolation_RecordOpenChild(grassElem, 0);
- rot.y = grassElem->rotY;
- Matrix_SetTranslateRotateYXZ(grassElem->pos.x, grassElem->pos.y, grassElem->pos.z, &rot);
- Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY);
-
- gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx),
- G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, grassElem->alpha);
- gSPDisplayList(POLY_XLU_DISP++, gObjGrass_D_809AAAE0);
+ if (GameInteractor_Should(VB_OBJGRASS_XLU_DRAW_BE_OVERRIDDEN, true, this, grassElem)) {
+ rot.y = grassElem->rotY;
+ Matrix_SetTranslateRotateYXZ(grassElem->pos.x, grassElem->pos.y, grassElem->pos.z, &rot);
+ Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx),
+ G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, grassElem->alpha);
+ gSPDisplayList(POLY_XLU_DISP++, gObjGrass_D_809AAAE0);
+ }
FrameInterpolation_RecordCloseChild();
}
}