-#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"
+#ifndef MONSTERS_ALL_H
+#define MONSTERS_ALL_H
+
+#include "monster.qh"
+
+string M_Model(string m_mdl);
+
+REGISTRY(Monsters, BITS(5))
+#define Monsters_from(i) _Monsters_from(i, MON_Null)
+#define get_monsterinfo(i) Monsters_from(i)
+REGISTER_REGISTRY(Monsters)
+REGISTRY_CHECK(Monsters)
+const int MON_FIRST = 1;
+#define MON_LAST (Monsters_COUNT - 1)
+/** If you register a new monster, make sure to add it to all.inc */
+#define REGISTER_MONSTER(id, inst) REGISTER(Monsters, MON, id, monsterid, inst)
+
+REGISTER_MONSTER(Null, NEW(Monster));
+
+
+#include "all.inc"
+
+#endif