-/* values for 'Properties1' */
-#define EP_BIT_AMOEBALIVE (1 << 0)
-#define EP_BIT_AMOEBOID (1 << 1)
-#define EP_BIT_SCHLUESSEL (1 << 2)
-#define EP_BIT_PFORTE (1 << 3)
-#define EP_BIT_SOLID (1 << 4)
-#define EP_BIT_INDESTRUCTIBLE (1 << 5)
-#define EP_BIT_SLIPPERY (1 << 6)
-#define EP_BIT_ENEMY (1 << 7)
-#define EP_BIT_MAUER (1 << 8)
-#define EP_BIT_CAN_FALL (1 << 9)
-#define EP_BIT_CAN_SMASH (1 << 10)
-#define EP_BIT_CAN_CHANGE (1 << 11)
-#define EP_BIT_CAN_MOVE (1 << 12)
-#define EP_BIT_COULD_MOVE (1 << 13)
-#define EP_BIT_DONT_TOUCH (1 << 14)
-#define EP_BIT_DONT_GO_TO (1 << 15)
-#define EP_BIT_MAMPF2 (1 << 16)
-#define EP_BIT_CHAR (1 << 17)
-#define EP_BIT_BD_ELEMENT (1 << 18)
-#define EP_BIT_SB_ELEMENT (1 << 19)
-#define EP_BIT_GEM (1 << 20)
-#define EP_BIT_INACTIVE (1 << 21)
-#define EP_BIT_EXPLOSIVE (1 << 22)
-#define EP_BIT_MAMPF3 (1 << 23)
-#define EP_BIT_PUSHABLE (1 << 24)
-#define EP_BIT_PLAYER (1 << 25)
-#define EP_BIT_HAS_CONTENT (1 << 26)
-#define EP_BIT_EATABLE (1 << 27)
-#define EP_BIT_SP_ELEMENT (1 << 28)
-#define EP_BIT_QUICK_GATE (1 << 29)
-#define EP_BIT_OVER_PLAYER (1 << 30)
-#define EP_BIT_ACTIVE_BOMB (1 << 31)
+/* property values */
+#define EP_AMOEBALIVE 0
+#define EP_AMOEBOID 1
+#define EP_SCHLUESSEL 2
+#define EP_PFORTE 3
+#define EP_SOLID 4
+#define EP_INDESTRUCTIBLE 5
+#define EP_SLIPPERY 6
+#define EP_ENEMY 7
+#define EP_MAUER 8
+#define EP_CAN_FALL 9
+#define EP_CAN_SMASH 10
+#define EP_CAN_CHANGE 11
+#define EP_CAN_MOVE 12
+#define EP_COULD_MOVE 13
+#define EP_DONT_TOUCH 14
+#define EP_DONT_GO_TO 15
+#define EP_MAMPF2 16
+#define EP_CHAR 17
+#define EP_BD_ELEMENT 18
+#define EP_SB_ELEMENT 19
+#define EP_GEM 20
+#define EP_INACTIVE 21
+#define EP_EXPLOSIVE 22
+#define EP_MAMPF3 23
+#define EP_PUSHABLE 24
+#define EP_PLAYER 25
+#define EP_HAS_CONTENT 26
+#define EP_EATABLE 27
+#define EP_SP_ELEMENT 28
+#define EP_QUICK_GATE 29
+#define EP_OVER_PLAYER 30
+#define EP_ACTIVE_BOMB 31
+
+#define EP_BELT 32
+#define EP_BELT_ACTIVE 33
+#define EP_BELT_SWITCH 34
+#define EP_TUBE 35
+#define EP_EM_SLIPPERY_WALL 36
+#define EP_CAN_BE_CRUMBLED 37
+
+#define NUM_ELEMENT_PROPERTIES 38
+
+#define NUM_EP_BITFIELDS ((NUM_ELEMENT_PROPERTIES + 31) / 32)
+#define EP_BITFIELD_BASE 0
+
+#define PROPERTY_BIT(p) (1 << ((p) % 32))
+#define PROPERTY_VAR(e, p) (Properties[e][(p) / 32])
+#define PROPERTY_VALUE(e, p) (PROPERTY_VAR(e, p) & PROPERTY_BIT(p))
+#define SET_PROPERTY(e, p, v) ((v) ? \
+ (PROPERTY_VAR(e,p) |= PROPERTY_BIT(p)) : \
+ (PROPERTY_VAR(e,p) &= ~PROPERTY_BIT(p)))
+
+/* property bit masks */
+#define EP_BIT_AMOEBALIVE PROPERTY_BIT(EP_AMOEBALIVE)
+#define EP_BIT_AMOEBOID PROPERTY_BIT(EP_AMOEBOID)
+#define EP_BIT_SCHLUESSEL PROPERTY_BIT(EP_SCHLUESSEL)
+#define EP_BIT_PFORTE PROPERTY_BIT(EP_PFORTE)
+#define EP_BIT_SOLID PROPERTY_BIT(EP_SOLID)
+#define EP_BIT_INDESTRUCTIBLE PROPERTY_BIT(EP_INDESTRUCTIBLE)
+#define EP_BIT_SLIPPERY PROPERTY_BIT(EP_SLIPPERY)
+#define EP_BIT_ENEMY PROPERTY_BIT(EP_ENEMY)
+#define EP_BIT_MAUER PROPERTY_BIT(EP_MAUER)
+#define EP_BIT_CAN_FALL PROPERTY_BIT(EP_CAN_FALL)
+#define EP_BIT_CAN_SMASH PROPERTY_BIT(EP_CAN_SMASH)
+#define EP_BIT_CAN_CHANGE PROPERTY_BIT(EP_CAN_CHANGE)
+#define EP_BIT_CAN_MOVE PROPERTY_BIT(EP_CAN_MOVE)
+#define EP_BIT_COULD_MOVE PROPERTY_BIT(EP_COULD_MOVE)
+#define EP_BIT_DONT_TOUCH PROPERTY_BIT(EP_DONT_TOUCH)
+#define EP_BIT_DONT_GO_TO PROPERTY_BIT(EP_DONT_GO_TO)
+#define EP_BIT_MAMPF2 PROPERTY_BIT(EP_MAMPF2)
+#define EP_BIT_CHAR PROPERTY_BIT(EP_CHAR)
+#define EP_BIT_BD_ELEMENT PROPERTY_BIT(EP_BD_ELEMENT)
+#define EP_BIT_SB_ELEMENT PROPERTY_BIT(EP_SB_ELEMENT)
+#define EP_BIT_GEM PROPERTY_BIT(EP_GEM)
+#define EP_BIT_INACTIVE PROPERTY_BIT(EP_INACTIVE)
+#define EP_BIT_EXPLOSIVE PROPERTY_BIT(EP_EXPLOSIVE)
+#define EP_BIT_MAMPF3 PROPERTY_BIT(EP_MAMPF3)
+#define EP_BIT_PUSHABLE PROPERTY_BIT(EP_PUSHABLE)
+#define EP_BIT_PLAYER PROPERTY_BIT(EP_PLAYER)
+#define EP_BIT_HAS_CONTENT PROPERTY_BIT(EP_HAS_CONTENT)
+#define EP_BIT_EATABLE PROPERTY_BIT(EP_EATABLE)
+#define EP_BIT_SP_ELEMENT PROPERTY_BIT(EP_SP_ELEMENT)
+#define EP_BIT_QUICK_GATE PROPERTY_BIT(EP_QUICK_GATE)
+#define EP_BIT_OVER_PLAYER PROPERTY_BIT(EP_OVER_PLAYER)
+#define EP_BIT_ACTIVE_BOMB PROPERTY_BIT(EP_ACTIVE_BOMB)