Index: src/entities.mm
==================================================================
--- src/entities.mm
+++ src/entities.mm
@@ -34,17 +34,18 @@
 		triggertime = 0;
 	loopv(ents)
 	{
 		entity &e = ents[i];
 		if (e.type == MAPMODEL) {
-			mapmodelinfo &mmi = getmminfo(e.attr2);
-			if (!&mmi)
+			mapmodelinfo *mmi = getmminfo(e.attr2);
+			if (!mmi)
 				continue;
-			rendermodel(mmi.name, 0, 1, e.attr4, (float)mmi.rad,
-			    e.x, (float)S(e.x, e.y)->floor + mmi.zoff + e.attr3,
+			rendermodel(mmi->name, 0, 1, e.attr4, (float)mmi->rad,
+			    e.x,
+			    (float)S(e.x, e.y)->floor + mmi->zoff + e.attr3,
 			    e.y, (float)((e.attr1 + 7) - (e.attr1 + 7) % 15), 0,
-			    false, 1.0f, 10.0f, mmi.snap);
+			    false, 1.0f, 10.0f, mmi->snap);
 		} else {
 			if (OUTBORD(e.x, e.y))
 				continue;
 			if (e.type != CARROT) {
 				if (!e.spawned && e.type != TELEPORT)

Index: src/physics.mm
==================================================================
--- src/physics.mm
+++ src/physics.mm
@@ -57,22 +57,22 @@
 	loopv(ents)
 	{
 		entity &e = ents[i];
 		if (e.type != MAPMODEL)
 			continue;
-		mapmodelinfo &mmi = getmminfo(e.attr2);
-		if (!&mmi || !mmi.h)
+		mapmodelinfo *mmi = getmminfo(e.attr2);
+		if (!mmi || !mmi->h)
 			continue;
-		const float r = mmi.rad + d->radius;
+		const float r = mmi->rad + d->radius;
 		if (fabs(e.x - d->o.x) < r && fabs(e.y - d->o.y) < r) {
 			float mmz =
-			    (float)(S(e.x, e.y)->floor + mmi.zoff + e.attr3);
+			    (float)(S(e.x, e.y)->floor + mmi->zoff + e.attr3);
 			if (d->o.z - d->eyeheight < mmz) {
 				if (mmz < hi)
 					hi = mmz;
-			} else if (mmz + mmi.h > lo)
-				lo = mmz + mmi.h;
+			} else if (mmz + mmi->h > lo)
+				lo = mmz + mmi->h;
 		};
 	};
 };
 
 // all collision happens here

Index: src/protos.h
==================================================================
--- src/protos.h
+++ src/protos.h
@@ -205,11 +205,11 @@
 
 // rendermd2
 extern void rendermodel(char *mdl, int frame, int range, int tex, float rad,
     float x, float y, float z, float yaw, float pitch, bool teammate,
     float scale, float speed, int snap = 0, int basetime = 0);
-extern mapmodelinfo &getmminfo(int i);
+extern mapmodelinfo *getmminfo(int i);
 
 // server
 extern void initserver(bool dedicated, int uprate, char *sdesc, char *ip,
     char *master, char *passwd, int maxcl);
 extern void cleanupserver();

Index: src/rendermd2.mm
==================================================================
--- src/rendermd2.mm
+++ src/rendermd2.mm
@@ -252,14 +252,14 @@
 mapmodelreset()
 {
 	mapmodels.setsize(0);
 };
 
-mapmodelinfo &
+mapmodelinfo *
 getmminfo(int i)
 {
-	return i < mapmodels.length() ? mapmodels[i]->mmi : *(mapmodelinfo *)0;
+	return i < mapmodels.length() ? &mapmodels[i]->mmi : NULL;
 };
 
 COMMAND(mapmodel, ARG_5STR);
 COMMAND(mapmodelreset, ARG_NONE);