-#include "monster/brute.qc"
-#include "monster/animus.qc"
-#include "monster/shambler.qc"
-#include "monster/bruiser.qc"
-#include "monster/wyvern.qc"
-#include "monster/cerberus.qc"
-#include "monster/slime.qc"
-#include "monster/knight.qc"
-#include "monster/stingray.qc"
-#include "monster/mage.qc"
-#include "monster/zombie.qc"
-#include "monster/spider.qc"
+#pragma once
+
+string M_Model(string m_mdl);
+
+REGISTRY(Monsters, BITS(5))
+#define get_monsterinfo(i) REGISTRY_GET(Monsters, i)
+REGISTER_REGISTRY(Monsters)
+REGISTRY_CHECK(Monsters)
+const int MON_FIRST = 1;
+#define MON_LAST (REGISTRY_COUNT(Monsters) - 1)
+#define REGISTER_MONSTER(id, inst) REGISTER(Monsters, MON, id, monsterid, inst)
+
+#include "monster.qh"
+
+REGISTER_MONSTER(Null, NEW(Monster));
+REGISTRY_DEFINE_GET(Monsters, MON_Null)