Removed level change from Tile and put it in LevelChangeTile
Removed level change from Tile and put it in LevelChangeTile
Fix for step off logic in grid for upward steps
Changed grit changeLevel to reutrn levelChange from tiles instead of
creating manualy
Adjusted MovementAnimator so teleport between mats with no stepping at
end of Viridian Forest
Renamed TeleportTile to LevelChangeTile
Removed level change vars from Tile Class and relavent JSON
Added stepAfterLeave variable to LevelChange to manage stepping after
level change for stepOff level changes (Viridian fix)

--- a/res/Actors.json
+++ b/res/Actors.json
@@ -16,11 +16,6 @@
 		"id":23,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":24
 	},
@@ -46,11 +41,6 @@
 		"id":51,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":25
 	},
@@ -76,11 +66,6 @@
 		"id":79,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":26
 	},
@@ -101,11 +86,6 @@
 		"id":84,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":27
 	},
@@ -126,11 +106,6 @@
 		"id":104,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":28
 	},
@@ -156,11 +131,6 @@
 		"id":106,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":29
 	},
@@ -186,11 +156,6 @@
 		"id":107,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":30
 	},
@@ -216,11 +181,6 @@
 		"id":108,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":31
 	},
@@ -246,11 +206,6 @@
 		"id":216,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":32
 	},
@@ -276,11 +231,6 @@
 		"id":222,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":36
 	},
@@ -306,11 +256,6 @@
 		"id":223,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":37
 	},
@@ -331,11 +276,6 @@
 		"id":224,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":38
 	},
@@ -361,11 +301,6 @@
 		"id":225,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":39
 	},
@@ -391,11 +326,6 @@
 		"id":226,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":40
 	},
@@ -416,11 +346,6 @@
 		"id":227,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":41
 	},
@@ -446,11 +371,6 @@
 		"id":228,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":42
 	},
@@ -471,11 +391,6 @@
 		"id":229,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":43
 	},
@@ -501,11 +416,6 @@
 		"id":230,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":44
 	},
@@ -526,11 +436,6 @@
 		"id":231,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":45
 	},
@@ -551,11 +456,6 @@
 		"id":232,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":46
 	},
@@ -576,11 +476,6 @@
 		"id":233,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":47
 	},
@@ -606,11 +501,6 @@
 		"id":234,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":48
 	},
@@ -631,11 +521,6 @@
 		"id":238,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":49
 	},
@@ -656,11 +541,6 @@
 		"id":239,
 		"pixelOffsetX":0,
 		"pixelOffsetY":-8,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":50
 	},
@@ -681,11 +561,6 @@
 		"id":240,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":51
 	},
@@ -706,11 +581,6 @@
 		"id":241,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":52
 	},
@@ -736,11 +606,6 @@
 		"id":242,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":53
 	},
@@ -766,11 +631,6 @@
 		"id":243,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":54
 	},
@@ -791,11 +651,6 @@
 		"id":244,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":55
 	},
@@ -816,11 +671,6 @@
 		"id":247,
 		"pixelOffsetX":0,
 		"pixelOffsetY":-8,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":56
 	},
@@ -841,11 +691,6 @@
 		"id":248,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":57
 	},
@@ -866,11 +711,6 @@
 		"id":249,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":58
 	},
@@ -896,11 +736,6 @@
 		"id":250,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":59
 	},
@@ -921,11 +756,6 @@
 		"id":251,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":60
 	},
@@ -946,11 +776,6 @@
 		"id":252,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":61
 	},
@@ -971,11 +796,6 @@
 		"id":253,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":62
 	},
@@ -1001,11 +821,6 @@
 		"id":254,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":63
 	},
@@ -1026,11 +841,6 @@
 		"id":255,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":64
 	},
@@ -1051,11 +861,6 @@
 		"id":256,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":65
 	},
@@ -1076,11 +881,6 @@
 		"id":259,
 		"pixelOffsetX":0,
 		"pixelOffsetY":-8,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":66
 	},
@@ -1101,11 +901,6 @@
 		"id":260,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":67
 	},
@@ -1126,11 +921,6 @@
 		"id":263,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":68
 	},
@@ -1151,11 +941,6 @@
 		"id":264,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":69
 	},
@@ -1176,11 +961,6 @@
 		"id":265,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":70
 	},
@@ -1201,11 +981,6 @@
 		"id":268,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":71
 	},
@@ -1226,11 +1001,6 @@
 		"id":269,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":72
 	},
@@ -1251,11 +1021,6 @@
 		"id":272,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":73
 	},
@@ -1281,11 +1046,6 @@
 		"id":273,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":74
 	},
@@ -1306,11 +1066,6 @@
 		"id":274,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":75
 	}

--- a/res/Tiles.json
+++ b/res/Tiles.json
@@ -6,11 +6,6 @@
 		"id":0,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -20,11 +15,6 @@
 		"id":1,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -34,11 +24,6 @@
 		"id":2,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -48,11 +33,6 @@
 		"id":3,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -62,11 +42,6 @@
 		"id":4,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -76,11 +51,6 @@
 		"id":5,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -90,11 +60,6 @@
 		"id":6,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":23
 	},
@@ -105,11 +70,6 @@
 		"id":7,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -119,25 +79,25 @@
 		"id":8,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"StairsDL1.png",
 		"canBeSteppedOn":true,
 		"id":9,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":1,
-		"leaveDirection":"LEFT",
-		"exitDir":"NONE",
-		"xnew":3,
-		"ynew":-3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":1,
+				"newX":7,
+				"newY":1,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"LEFT"
+			}
 		"rf":null
 	},
 	{
@@ -147,11 +107,6 @@
 		"id":10,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -161,11 +116,6 @@
 		"id":11,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":4
 	},
@@ -176,11 +126,6 @@
 		"id":12,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -190,11 +135,6 @@
 		"id":13,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -204,11 +144,6 @@
 		"id":14,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -218,11 +153,6 @@
 		"id":15,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -232,11 +162,6 @@
 		"id":16,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -246,11 +171,6 @@
 		"id":17,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":5
 	},
@@ -261,26 +181,26 @@
 		"id":18,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":6
 	},
 	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"StairsUL.png",
 		"canBeSteppedOn":true,
 		"id":19,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":0,
-		"leaveDirection":"LEFT",
-		"exitDir":"NONE",
-		"xnew":3,
-		"ynew":-3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":0,
+				"newX":7,
+				"newY":1,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"LEFT"
+			}
 		"rf":null
 	},
 	{
@@ -290,11 +210,6 @@
 		"id":20,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -304,11 +219,6 @@
 		"id":21,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -318,11 +228,6 @@
 		"id":22,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -332,11 +237,6 @@
 		"id":23,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -346,11 +246,6 @@
 		"id":24,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -360,25 +255,25 @@
 		"id":25,
 		"pixelOffsetX":-8,
 		"pixelOffsetY":-12,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat1.png",
 		"canBeSteppedOn":true,
 		"id":26,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":2,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":4,
-		"ynew":3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":2,
+				"newX":8,
+				"newY":7,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -388,11 +283,6 @@
 		"id":27,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":{
 			"class":"com.dryerzinia.pokemon.obj.RandomFight",
 			"pokemon":[
@@ -561,11 +451,6 @@
 		"id":28,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -575,11 +460,6 @@
 		"id":29,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -589,11 +469,6 @@
 		"id":30,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -603,11 +478,6 @@
 		"id":31,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -617,11 +487,6 @@
 		"id":32,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -631,11 +496,6 @@
 		"id":33,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -645,11 +505,6 @@
 		"id":34,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -659,11 +514,6 @@
 		"id":35,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -673,11 +523,6 @@
 		"id":36,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -687,11 +532,6 @@
 		"id":37,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -701,11 +541,6 @@
 		"id":38,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -715,11 +550,6 @@
 		"id":39,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -729,11 +559,6 @@
 		"id":40,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -743,11 +568,6 @@
 		"id":41,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -757,11 +577,6 @@
 		"id":42,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -771,11 +586,6 @@
 		"id":43,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":3
 	},
@@ -786,11 +596,6 @@
 		"id":44,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":7
 	},
@@ -801,11 +606,6 @@
 		"id":45,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -815,11 +615,6 @@
 		"id":46,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -829,39 +624,44 @@
 		"id":47,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
-		"canBeSteppedOn":false,
+		"canBeSteppedOn":true,
 		"id":48,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":1,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":1,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":49,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":3,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":3,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	},
 	{
@@ -871,11 +671,6 @@
 		"id":50,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -885,11 +680,6 @@
 		"id":51,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -899,11 +689,6 @@
 		"id":52,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -913,11 +698,6 @@
 		"id":53,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -927,11 +707,6 @@
 		"id":54,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -941,11 +716,6 @@
 		"id":55,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":8
 	},
@@ -956,11 +726,6 @@
 		"id":56,
 		"pixelOffsetX":8,
 		"pixelOffsetY":8,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -970,11 +735,6 @@
 		"id":57,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -984,11 +744,6 @@
 		"id":58,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -998,11 +753,6 @@
 		"id":59,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1012,11 +762,6 @@
 		"id":60,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1026,11 +771,6 @@
 		"id":61,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1040,11 +780,6 @@
 		"id":62,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1054,11 +789,6 @@
 		"id":63,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1068,11 +798,6 @@
 		"id":64,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1082,11 +807,6 @@
 		"id":65,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1096,11 +816,6 @@
 		"id":66,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1110,11 +825,6 @@
 		"id":67,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1124,11 +834,6 @@
 		"id":68,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1138,25 +843,25 @@
 		"id":69,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building02-23.png",
 		"canBeSteppedOn":false,
 		"id":70,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":4,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":0,
-		"ynew":7,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":4,
+				"newX":4,
+				"newY":11,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	},
 	{
@@ -1166,11 +871,6 @@
 		"id":71,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":9
 	},
@@ -1181,11 +881,6 @@
 		"id":72,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1195,11 +890,6 @@
 		"id":73,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1209,11 +899,6 @@
 		"id":74,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1223,11 +908,6 @@
 		"id":75,
 		"pixelOffsetX":8,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1237,11 +917,6 @@
 		"id":76,
 		"pixelOffsetX":8,
 		"pixelOffsetY":8,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1251,11 +926,6 @@
 		"id":77,
 		"pixelOffsetX":0,
 		"pixelOffsetY":-8,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1265,11 +935,6 @@
 		"id":78,
 		"pixelOffsetX":8,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1279,11 +944,6 @@
 		"id":79,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1293,11 +953,6 @@
 		"id":80,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1307,25 +962,25 @@
 		"id":81,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat2.png",
 		"canBeSteppedOn":true,
 		"id":82,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":2,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":12,
-		"ynew":3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":2,
+				"newX":16,
+				"newY":7,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -1335,11 +990,6 @@
 		"id":83,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1349,11 +999,6 @@
 		"id":84,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1363,11 +1008,6 @@
 		"id":85,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":10
 	},
@@ -1378,26 +1018,26 @@
 		"id":86,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":11
 	},
 	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat2.png",
 		"canBeSteppedOn":true,
 		"id":87,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":2,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":11,
-		"ynew":9,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":2,
+				"newX":15,
+				"newY":13,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -1407,11 +1047,6 @@
 		"id":88,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":12
 	},
@@ -1422,11 +1057,6 @@
 		"id":89,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":12
 	},
@@ -1437,11 +1067,6 @@
 		"id":90,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1451,11 +1076,6 @@
 		"id":91,
 		"pixelOffsetX":0,
 		"pixelOffsetY":-4,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":13
 	},
@@ -1466,11 +1086,6 @@
 		"id":92,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1480,11 +1095,6 @@
 		"id":93,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1494,11 +1104,6 @@
 		"id":94,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1508,11 +1113,6 @@
 		"id":95,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1522,11 +1122,6 @@
 		"id":96,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1536,11 +1131,6 @@
 		"id":97,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1550,11 +1140,6 @@
 		"id":98,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1564,11 +1149,6 @@
 		"id":99,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1578,11 +1158,6 @@
 		"id":100,
 		"pixelOffsetX":0,
 		"pixelOffsetY":-4,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":14
 	},
@@ -1593,11 +1168,6 @@
 		"id":101,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1607,11 +1177,6 @@
 		"id":102,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1621,11 +1186,6 @@
 		"id":103,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1635,11 +1195,6 @@
 		"id":104,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":15
 	},
@@ -1650,11 +1205,6 @@
 		"id":105,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":16
 	},
@@ -1665,11 +1215,6 @@
 		"id":106,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1679,11 +1224,6 @@
 		"id":107,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":17
 	},
@@ -1694,11 +1234,6 @@
 		"id":108,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":18
 	},
@@ -1709,27 +1244,26 @@
 		"id":109,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":19
 	},
 	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":110,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":7,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":7,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 	},
 	{
 		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
@@ -1738,11 +1272,6 @@
 		"id":111,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1752,53 +1281,63 @@
 		"id":112,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat2.png",
 		"canBeSteppedOn":true,
 		"id":113,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":6,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":13,
-		"ynew":6,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":6,
+				"newX":17,
+				"newY":10,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":114,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":8,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":8,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat2.png",
 		"canBeSteppedOn":true,
 		"id":115,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":6,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":13,
-		"ynew":12,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":6,
+				"newX":17,
+				"newY":16,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -1808,11 +1347,6 @@
 		"id":116,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1822,11 +1356,6 @@
 		"id":117,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1836,11 +1365,6 @@
 		"id":118,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1850,11 +1374,6 @@
 		"id":119,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1864,11 +1383,6 @@
 		"id":120,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1878,11 +1392,6 @@
 		"id":121,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1892,11 +1401,6 @@
 		"id":122,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1906,11 +1410,6 @@
 		"id":123,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1920,11 +1419,6 @@
 		"id":124,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1934,11 +1428,6 @@
 		"id":125,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1948,11 +1437,6 @@
 		"id":126,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -1962,39 +1446,44 @@
 		"id":127,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":128,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":9,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":9,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":129,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":6,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":15,
-		"ynew":22,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":6,
+				"newX":19,
+				"newY":26,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -2004,11 +1493,6 @@
 		"id":130,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2018,11 +1502,6 @@
 		"id":131,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2032,11 +1511,6 @@
 		"id":132,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2046,11 +1520,6 @@
 		"id":133,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2060,11 +1529,6 @@
 		"id":134,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2074,11 +1538,6 @@
 		"id":135,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2088,11 +1547,6 @@
 		"id":136,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2102,11 +1556,6 @@
 		"id":137,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2116,11 +1565,6 @@
 		"id":138,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2130,11 +1574,6 @@
 		"id":139,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2144,11 +1583,6 @@
 		"id":140,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2158,11 +1592,6 @@
 		"id":141,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2172,11 +1601,6 @@
 		"id":142,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2186,11 +1610,6 @@
 		"id":143,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2200,11 +1619,6 @@
 		"id":144,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2214,11 +1628,6 @@
 		"id":145,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2228,11 +1637,6 @@
 		"id":146,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2242,25 +1646,25 @@
 		"id":147,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":148,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":10,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":10,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	},
 	{
@@ -2270,11 +1674,6 @@
 		"id":149,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2284,25 +1683,25 @@
 		"id":150,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":151,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":9,
-		"ynew":25,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":13,
+				"newY":29,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -2312,11 +1711,6 @@
 		"id":152,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2326,11 +1720,6 @@
 		"id":153,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2340,11 +1729,6 @@
 		"id":154,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2354,11 +1738,6 @@
 		"id":155,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2368,11 +1747,6 @@
 		"id":156,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2382,11 +1756,6 @@
 		"id":157,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2396,11 +1765,6 @@
 		"id":158,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":20
 	},
@@ -2411,11 +1775,6 @@
 		"id":159,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":20
 	},
@@ -2426,11 +1785,6 @@
 		"id":160,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2440,11 +1794,6 @@
 		"id":161,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2454,11 +1803,6 @@
 		"id":162,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2468,11 +1812,6 @@
 		"id":163,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2482,11 +1821,6 @@
 		"id":164,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2496,11 +1830,6 @@
 		"id":165,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2510,11 +1839,6 @@
 		"id":166,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2524,11 +1848,6 @@
 		"id":167,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2538,11 +1857,6 @@
 		"id":168,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2552,11 +1866,6 @@
 		"id":169,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2566,11 +1875,6 @@
 		"id":170,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2580,11 +1884,6 @@
 		"id":171,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2594,11 +1893,6 @@
 		"id":172,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2608,11 +1902,6 @@
 		"id":173,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2622,11 +1911,6 @@
 		"id":174,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2636,11 +1920,6 @@
 		"id":175,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -2650,11 +1929,6 @@
 		"id":176,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":{
 			"class":"com.dryerzinia.pokemon.obj.RandomFight",
 			"pokemon":[
@@ -3099,11 +2373,6 @@
 		"id":177,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":{
 			"class":"com.dryerzinia.pokemon.obj.RandomFight",
 			"pokemon":[
@@ -3468,11 +2737,6 @@
 		"id":178,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3482,11 +2746,6 @@
 		"id":179,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3496,11 +2755,6 @@
 		"id":180,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3510,25 +2764,25 @@
 		"id":181,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":182,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":13,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":0,
-		"ynew":3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":13,
+				"newX":4,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	},
 	{
@@ -3538,11 +2792,6 @@
 		"id":183,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3552,25 +2801,25 @@
 		"id":184,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Door.png",
 		"canBeSteppedOn":true,
 		"id":185,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":14,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":12,
-		"ynew":43,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":14,
+				"newX":16,
+				"newY":47,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	},
 	{
@@ -3580,11 +2829,6 @@
 		"id":186,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3594,25 +2838,25 @@
 		"id":187,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":188,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":13,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":1,
-		"ynew":-4,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":13,
+				"newX":5,
+				"newY":0,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -3622,11 +2866,6 @@
 		"id":189,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3636,11 +2875,6 @@
 		"id":190,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3650,11 +2884,6 @@
 		"id":191,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3664,11 +2893,6 @@
 		"id":192,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3678,25 +2902,25 @@
 		"id":193,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":194,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":12,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":3,
-		"ynew":-1,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":12,
+				"newX":7,
+				"newY":3,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -3706,11 +2930,6 @@
 		"id":195,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -3720,11 +2939,6 @@
 		"id":196,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":{
 			"class":"com.dryerzinia.pokemon.obj.RandomFight",
 			"pokemon":[
@@ -4171,59 +3385,79 @@
 		}
 	},
 	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":197,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":15,
-		"leaveDirection":"UP",
-		"exitDir":"UP",
-		"xnew":0,
-		"ynew":2,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":15,
+				"newX":4,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"UP",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":198,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":14,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":-3,
-		"ynew":-5,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":14,
+				"newX":1,
+				"newY":0,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Door.png",
 		"canBeSteppedOn":true,
 		"id":199,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":9,
-		"ynew":47,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":13,
+				"newY":51,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"CaveE.png",
 		"canBeSteppedOn":true,
 		"id":200,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":12,
-		"ynew":43,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":16,
+				"newY":47,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	},
 	{
@@ -4233,11 +3467,6 @@
 		"id":201,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":{
 			"class":"com.dryerzinia.pokemon.obj.RandomFight",
 			"pokemon":[
@@ -4684,101 +3913,136 @@
 		}
 	},
 	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"PurpleGreenTile.png",
 		"canBeSteppedOn":true,
 		"id":202,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":15,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":1,
-		"ynew":-4,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":15,
+				"newX":5,
+				"newY":0,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"PurpleGreenTile.png",
 		"canBeSteppedOn":true,
 		"id":203,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":18,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":1,
-		"ynew":-4,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":18,
+				"newX":5,
+				"newY":0,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":204,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":12,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":15,
-		"ynew":-5,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":12,
+				"newX":19,
+				"newY":-1,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":true,
 		"id":205,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":18,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":0,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":18,
+				"newX":4,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Door.png",
 		"canBeSteppedOn":true,
 		"id":206,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":17,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":17,
-		"ynew":19,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":17,
+				"newX":21,
+				"newY":23,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":207,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":19,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":0,
-		"ynew":9,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":19,
+				"newX":4,
+				"newY":13,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":208,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":12,
-		"ynew":17,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":16,
+				"newY":21,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -4788,11 +4052,6 @@
 		"id":209,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -4802,11 +4061,6 @@
 		"id":210,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -4816,11 +4070,6 @@
 		"id":211,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -4830,11 +4079,6 @@
 		"id":212,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -4844,11 +4088,6 @@
 		"id":213,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -4858,151 +4097,196 @@
 		"id":214,
 		"pixelOffsetX":-1,
 		"pixelOffsetY":-8,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":215,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":20,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":20,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat2.png",
 		"canBeSteppedOn":true,
 		"id":216,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":17,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":15,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":17,
+				"newX":19,
+				"newY":7,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":217,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":21,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":21,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat2.png",
 		"canBeSteppedOn":true,
 		"id":218,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":3,
-		"ynew":29,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":7,
+				"newY":33,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":219,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":22,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":22,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat2.png",
 		"canBeSteppedOn":true,
 		"id":220,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":25,
-		"ynew":13,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":29,
+				"newY":17,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":221,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":23,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":23,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":222,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":6,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":21,
-		"ynew":16,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":6,
+				"newX":25,
+				"newY":20,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":223,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":24,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":24,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":224,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":19,
-		"ynew":17,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":23,
+				"newY":21,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -5012,11 +4296,6 @@
 		"id":225,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5026,11 +4305,6 @@
 		"id":226,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5040,11 +4314,6 @@
 		"id":227,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5054,11 +4323,6 @@
 		"id":228,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5068,11 +4332,6 @@
 		"id":229,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5082,11 +4341,6 @@
 		"id":230,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5096,25 +4350,25 @@
 		"id":231,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":232,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":25,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":6,
-		"ynew":3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":25,
+				"newX":10,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	},
 	{
@@ -5124,11 +4378,6 @@
 		"id":233,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5138,53 +4387,63 @@
 		"id":234,
 		"pixelOffsetX":0,
 		"pixelOffsetY":8,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":235,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":15,
-		"ynew":5,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":19,
+				"newY":9,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":236,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":25,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":12,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":25,
+				"newX":16,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":237,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":16,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":10,
-		"ynew":7,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":16,
+				"newX":14,
+				"newY":11,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -5194,39 +4453,44 @@
 		"id":238,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"StairsUL.png",
 		"canBeSteppedOn":true,
 		"id":239,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":26,
-		"leaveDirection":"LEFT",
-		"exitDir":"NONE",
-		"xnew":3,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":26,
+				"newX":7,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"LEFT"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"StairsDL1.png",
 		"canBeSteppedOn":true,
 		"id":240,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":25,
-		"leaveDirection":"LEFT",
-		"exitDir":"NONE",
-		"xnew":3,
-		"ynew":3,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":25,
+				"newX":7,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"LEFT"
+			}
 		"rf":null
 	},
 	{
@@ -5236,11 +4500,6 @@
 		"id":241,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5250,11 +4509,6 @@
 		"id":242,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5264,11 +4518,6 @@
 		"id":243,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5278,11 +4527,6 @@
 		"id":244,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5292,11 +4536,6 @@
 		"id":245,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5306,11 +4545,6 @@
 		"id":246,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5320,11 +4554,6 @@
 		"id":247,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5334,11 +4563,6 @@
 		"id":248,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5348,54 +4572,64 @@
 		"id":249,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":21
 	},
 	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Building01-12.png",
 		"canBeSteppedOn":false,
 		"id":250,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":29,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":29,
+				"newX":3,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Mat4.png",
 		"canBeSteppedOn":true,
 		"id":251,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":28,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":7,
-		"ynew":1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":28,
+				"newX":11,
+				"newY":5,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"CaveE.png",
 		"canBeSteppedOn":true,
 		"id":252,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":30,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":10,
-		"ynew":31,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":30,
+				"newX":14,
+				"newY":35,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	},
 	{
@@ -5405,11 +4639,6 @@
 		"id":253,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5419,11 +4648,6 @@
 		"id":254,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5433,11 +4657,6 @@
 		"id":255,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5447,11 +4666,6 @@
 		"id":256,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5461,11 +4675,6 @@
 		"id":257,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5475,25 +4684,25 @@
 		"id":258,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"Cave_I_EXIT.png",
 		"canBeSteppedOn":true,
 		"id":259,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":28,
-		"leaveDirection":"DOWN",
-		"exitDir":"DOWN",
-		"xnew":14,
-		"ynew":1,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":28,
+				"newX":18,
+				"newY":5,
+				"stepAfterLeave":true,
+				"toLeaveDirection":"DOWN",
+				"newDirection":"DOWN"
+			}
 		"rf":null
 	},
 	{
@@ -5503,11 +4712,6 @@
 		"id":260,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5517,11 +4721,6 @@
 		"id":261,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5531,11 +4730,6 @@
 		"id":262,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5545,11 +4739,6 @@
 		"id":263,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5559,11 +4748,6 @@
 		"id":264,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5573,11 +4757,6 @@
 		"id":265,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5587,11 +4766,6 @@
 		"id":266,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5601,11 +4775,6 @@
 		"id":267,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5615,11 +4784,6 @@
 		"id":268,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5629,11 +4793,6 @@
 		"id":269,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5643,11 +4802,6 @@
 		"id":270,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5657,11 +4811,6 @@
 		"id":271,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -5671,11 +4820,6 @@
 		"id":272,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null,
 		"onClickEventID":22
 	},
@@ -5686,11 +4830,6 @@
 		"id":273,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":{
 			"class":"com.dryerzinia.pokemon.obj.RandomFight",
 			"pokemon":[
@@ -5901,45 +5040,60 @@
 		}
 	},
 	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderDown.png",
 		"canBeSteppedOn":false,
 		"id":274,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":31,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":17,
-		"ynew":8,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":31,
+				"newX":21,
+				"newY":12,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderDown.png",
 		"canBeSteppedOn":false,
 		"id":275,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":31,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":17,
-		"ynew":2,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":31,
+				"newX":21,
+				"newY":6,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderDown.png",
 		"canBeSteppedOn":false,
 		"id":276,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":31,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-3,
-		"ynew":-2,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":31,
+				"newX":1,
+				"newY":2,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
 		"rf":null
 	},
 	{
@@ -5949,81 +5103,101 @@
 		"id":277,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderDown.png",
 		"canBeSteppedOn":false,
 		"id":278,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":32,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":17,
-		"ynew":13,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":32,
+				"newX":21,
+				"newY":17,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderDown.png",
 		"canBeSteppedOn":false,
 		"id":279,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":32,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":21,
-		"ynew":5,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":32,
+				"newX":25,
+				"newY":9,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderDown.png",
 		"canBeSteppedOn":false,
 		"id":280,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":32,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":11,
-		"ynew":23,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":32,
+				"newX":15,
+				"newY":27,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderUp.png",
 		"canBeSteppedOn":false,
 		"id":281,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":30,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":21,
-		"ynew":11,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":30,
+				"newX":25,
+				"newY":15,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderUp.png",
 		"canBeSteppedOn":false,
 		"id":282,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":30,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":13,
-		"ynew":7,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":30,
+				"newX":17,
+				"newY":11,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
 		"rf":null
 	},
 	{
@@ -6033,25 +5207,25 @@
 		"id":283,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderUp.png",
 		"canBeSteppedOn":false,
 		"id":284,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":30,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":1,
-		"ynew":1,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":30,
+				"newX":5,
+				"newY":5,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
 		"rf":null
 	},
 	{
@@ -6061,11 +5235,6 @@
 		"id":285,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -6075,11 +5244,6 @@
 		"id":286,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -6089,11 +5253,6 @@
 		"id":287,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -6103,11 +5262,6 @@
 		"id":288,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -6117,11 +5271,6 @@
 		"id":289,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -6131,11 +5280,6 @@
 		"id":290,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
 		"rf":null
 	},
 	{
@@ -6145,39 +5289,44 @@
 		"id":291,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":-1,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-1,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderUp.png",
 		"canBeSteppedOn":false,
 		"id":292,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":31,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":7,
-		"ynew":20,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":31,
+				"newX":11,
+				"newY":24,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderUp.png",
 		"canBeSteppedOn":false,
 		"id":293,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":31,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":9,
-		"ynew":4,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":31,
+				"newX":13,
+				"newY":8,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
 		"rf":null
 	},
 	{
@@ -6187,67 +5336,92 @@
 		"id":294,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":31,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":13,
-		"ynew":10,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":31,
+				"newX":17,
+				"newY":14,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderUp.png",
 		"canBeSteppedOn":false,
 		"id":295,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":33,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":-1,
-		"ynew":-2,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":33,
+				"newX":3,
+				"newY":2,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderDown.png",
 		"canBeSteppedOn":false,
 		"id":296,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":32,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":1,
-		"ynew":3,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":32,
+				"newX":5,
+				"newY":7,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"LadderUp.png",
 		"canBeSteppedOn":false,
 		"id":297,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":28,
-		"leaveDirection":"NONE",
-		"exitDir":"NONE",
-		"xnew":22,
-		"ynew":0,
-		"rf":null
-	},
-	{
-		"class":"com.dryerzinia.pokemon.obj.tiles.Tile",
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":28,
+				"newX":26,
+				"newY":4,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"NONE"
+			}
+		"rf":null
+	},
+	{
+		"class":"com.dryerzinia.pokemon.obj.tiles.LevelChangeTile",
 		"imgName":"CaveE.png",
 		"canBeSteppedOn":true,
 		"id":298,
 		"pixelOffsetX":0,
 		"pixelOffsetY":0,
-		"changeToLevel":33,
-		"leaveDirection":"UP",
-		"exitDir":"NONE",
-		"xnew":-4,
-		"ynew":-4,
+		"levelChange":
+			{
+				"class":"com.dryerzinia.pokemon.obj.LevelChange",
+				"newLevel":33,
+				"newX":0,
+				"newY":0,
+				"stepAfterLeave":false,
+				"toLeaveDirection":"NONE",
+				"newDirection":"UP"
+			}
 		"rf":null
 	}
 ]

--- a/src/com/dryerzinia/pokemon/map/Grid.java
+++ b/src/com/dryerzinia/pokemon/map/Grid.java
@@ -8,6 +8,7 @@
 import com.dryerzinia.pokemon.obj.LevelChange;

 import com.dryerzinia.pokemon.obj.RandomFight;

 import com.dryerzinia.pokemon.obj.tiles.Ledge;

+import com.dryerzinia.pokemon.obj.tiles.LevelChangeTile;

 import com.dryerzinia.pokemon.obj.tiles.Tile;

 import com.dryerzinia.pokemon.util.JSON;

 

@@ -147,14 +148,26 @@
 		int x = (int) location.getX();

 		int y = (int) location.getY();

 

-        // Step off logic

-    	try {

-    		// TODO fix the 4 4 offset in the maps

-    		for(int i = 0; i < grid[x][y].size(); i++){

-    			if(grid[x][y].get(i).changeToLevel != -1 && grid[x][y].get(i).exitDir != Direction.NONE)

-    				return new LevelChange(grid[x][y].get(i).xnew+4, grid[x][y].get(i).ynew+4, grid[x][y].get(i).changeToLevel, grid[x][y].get(i).exitDir, grid[x][y].get(i).leaveDirection);

-    		}

-    	} catch(Exception e){}

+		// Fix for upwards mat stepping

+		if(location.getY() == y){

+

+	        // Step off logic

+	    	try {

+	    		// TODO fix the 4 4 offset in the maps

+	    		for(int i = 0; i < grid[x][y].size(); i++){

+	

+	    			Tile t = grid[x][y].get(i);

+	    			if(t instanceof LevelChangeTile){

+	

+	    				LevelChange levelChange = ((LevelChangeTile) t).getLevelChange();

+	

+	    				if(levelChange.stepOnLeave())

+	    					return levelChange;

+	

+	    			}

+	    		}

+	    	} catch(Exception e){}

+		}

 

     	x = futureLocation.getX();

     	y = futureLocation.getY();

@@ -182,9 +195,18 @@
             return null;

 

         // TODO fix the 4 4 offset in the maps

-        for(int i = 0; i < grid[x][y].size(); i++)

-            if(grid[x][y].get(i).changeToLevel != -1 && grid[x][y].get(i).exitDir == Direction.NONE)

-            	return new LevelChange(grid[x][y].get(i).xnew+4, grid[x][y].get(i).ynew+4, grid[x][y].get(i).changeToLevel, grid[x][y].get(i).exitDir, grid[x][y].get(i).leaveDirection);

+        for(int i = 0; i < grid[x][y].size(); i++){

+

+			Tile t = grid[x][y].get(i);

+			if(t instanceof LevelChangeTile){

+

+				LevelChange levelChange = ((LevelChangeTile) t).getLevelChange();

+

+				if(!levelChange.stepOnLeave())

+					return levelChange;

+

+			}

+        }

 

         return null;

     }


--- a/src/com/dryerzinia/pokemon/obj/LevelChange.java
+++ b/src/com/dryerzinia/pokemon/obj/LevelChange.java
@@ -1,9 +1,13 @@
 package com.dryerzinia.pokemon.obj;
+
+import java.util.HashMap;
 
 import com.dryerzinia.pokemon.map.Direction;
 import com.dryerzinia.pokemon.map.Pose;
+import com.dryerzinia.pokemon.util.JSON;
+import com.dryerzinia.pokemon.util.JSONObject;
 
-public class LevelChange {
+public class LevelChange implements JSON {
 
 	/*
 	 * New level you will be in once you go though the change
@@ -15,8 +19,13 @@
 	private int newLevel;
 	private int newX;
 	private int newY;
+
+	private boolean stepAfterLeave;
+
 	private Direction toLeaveDirection;
 	private Direction newDirection;
+
+	public LevelChange(){}
 
 	public LevelChange(int newX, int newY, int newLevel, Direction toLeaveDirection, Direction newDirection){
 
@@ -32,6 +41,10 @@
 		return toLeaveDirection != Direction.NONE;
 	}
 
+	public boolean stepAfterLeave(){
+		return stepAfterLeave;
+	}
+
 	public boolean rightDirection(Direction direction){
 
 		if(toLeaveDirection == Direction.NONE)
@@ -45,5 +58,27 @@
 		return new Pose(newX, newY, newLevel, newDirection);
 	}
 
+	@Override
+	public String toJSON() throws IllegalAccessException {
+
+		return JSONObject.defaultToJSON(this);
+
+	}
+
+	@Override
+	public void fromJSON(HashMap<String, Object> json) {
+
+		newX = ((Float)json.get("newX")).intValue();
+		newY = ((Float)json.get("newY")).intValue();
+		newLevel = ((Float)json.get("newLevel")).intValue();
+
+		stepAfterLeave = ((Boolean)json.get("stepAfterLeave")).booleanValue();
+
+		toLeaveDirection = Direction.getFromString((String) json.get("toLeaveDirection"));
+		newDirection =  Direction.getFromString((String) json.get("newDirection"));
+
+		
+	}
+
 }
 

--- a/src/com/dryerzinia/pokemon/obj/MovementAnimator.java
+++ b/src/com/dryerzinia/pokemon/obj/MovementAnimator.java
@@ -329,6 +329,9 @@
     		 * If we are the clients player we change positions immediately
     		 */
     		if(newPosition == null){
+
+        		canStep = true;
+
     			if(finishing && !levelChange.stepOnLeave()){
 
        				elapsedTime = 0;
@@ -336,12 +339,16 @@
     				position.set(levelChange.getNewPosition());
 
     			} else if(levelChange.stepOnLeave()){
+
+    				if(!levelChange.stepAfterLeave()){
+    					elapsedTime = 0;
+    					canStep = false;
+    				}
 
     				position.set(levelChange.getNewPosition());
 
     			}
    			}
-    		canStep = true;
 
     	}
 
@@ -409,7 +416,7 @@
     		 * change step side for alternating gait
     		 */
     		stepSide = !stepSide;
-    		
+
     		/*
     		 * we have to get even with the square
     		 */

--- /dev/null
+++ b/src/com/dryerzinia/pokemon/obj/tiles/LevelChangeTile.java
@@ -1,1 +1,31 @@
+package com.dryerzinia.pokemon.obj.tiles;
 
+import java.util.HashMap;
+
+import com.dryerzinia.pokemon.obj.LevelChange;
+
+public class LevelChangeTile extends Tile {
+
+	private static final long serialVersionUID = 8778171254635450573L;
+
+	private LevelChange levelChange;
+
+    public LevelChangeTile(){}
+
+    public LevelChange getLevelChange(){
+    	return levelChange;
+    }
+
+    @Override
+    public void fromJSON(HashMap<String, Object> json){
+
+    	super.fromJSON(json);
+
+        levelChange = (LevelChange) json.get("levelChange");
+
+        loadImage();
+
+    }
+
+}
+

--- a/src/com/dryerzinia/pokemon/obj/tiles/TeleportTile.java
+++ /dev/null
@@ -1,14 +1,1 @@
-package com.dryerzinia.pokemon.obj.tiles;
 
-import com.dryerzinia.pokemon.obj.LevelChange;
-
-public class TeleportTile extends Tile {
-
-    public LevelChange levelChange;
-
-    public TeleportTile(){
-		//
-	}
-
-}
-

--- a/src/com/dryerzinia/pokemon/obj/tiles/Tile.java
+++ b/src/com/dryerzinia/pokemon/obj/tiles/Tile.java
@@ -26,12 +26,6 @@
 

     public int pixelOffsetX;

     public int pixelOffsetY;

-

-    public int changeToLevel = -1;

-    public Direction leaveDirection = Direction.NONE;

-    public Direction exitDir = Direction.NONE;

-    public int xnew = -1;

-    public int ynew = -1;

 

     public RandomFight rf;

 

@@ -65,34 +59,6 @@
         pixelOffsetY = py;

         canBeSteppedOn = cbso;

         loadImage();

-    }

-

-    public Tile(String imgName, boolean cbso, int ctl, Direction ld, int xnew,

-            int ynew) {

-        this.imgName = imgName;

-        pixelOffsetX = 0;

-        pixelOffsetY = 0;

-        canBeSteppedOn = cbso;

-        loadImage();

-        changeToLevel = ctl;

-        leaveDirection = ld;

-        this.xnew = xnew;

-        this.ynew = ynew;

-    }

-

-

-    public Tile(String imgName, boolean cbso, int ctl, Direction ld, int xnew,

-            int ynew, Direction exitDir) {

-        this.imgName = imgName;

-        pixelOffsetX = 0;

-        pixelOffsetY = 0;

-        canBeSteppedOn = cbso;

-        loadImage();

-        changeToLevel = ctl;

-        leaveDirection = ld;

-        this.xnew = xnew;

-        this.ynew = ynew;

-        this.exitDir = exitDir;

     }

 

     public void draw(float x, float y, Graphics g) {

@@ -140,6 +106,7 @@
 

 	}

 

+	@Override

     public void fromJSON(HashMap<String, Object> json){

 

         imgName = (String) json.get("imgName");

@@ -150,13 +117,6 @@
 

         pixelOffsetX = ((Float)json.get("pixelOffsetX")).intValue();

         pixelOffsetY = ((Float)json.get("pixelOffsetY")).intValue();

-

-        changeToLevel = ((Float)json.get("changeToLevel")).intValue();

-

-        leaveDirection = Direction.getFromString((String) json.get("leaveDirection"));

-        exitDir =  Direction.getFromString((String) json.get("exitDir"));

-        xnew = ((Float)json.get("xnew")).intValue();

-        ynew = ((Float)json.get("ynew")).intValue();

 

         rf = (RandomFight) json.get("rf");

 

@@ -169,8 +129,7 @@
 

     public Object deepCopy() {

 

-        Tile t = new Tile(new String(imgName), canBeSteppedOn, changeToLevel,

-                leaveDirection, xnew, ynew, exitDir);

+        Tile t = new Tile(new String(imgName), canBeSteppedOn);

 

 

         t.id = -1;


--- a/src/com/dryerzinia/pokemon/ui/editor/EditTile.java
+++ b/src/com/dryerzinia/pokemon/ui/editor/EditTile.java
@@ -23,8 +23,8 @@
     JLabel imgnamelb;
     JTextField imgname;
     JCheckBox cbso;
-    JTextField ctltf, ldtf, edtf, xntf, yntf, poxtf, poytf;
-    JLabel ctll, ldl, edl, xnl, ynl, poxl, poyl;
+    JTextField poxtf, poytf;
+    JLabel poxl, poyl;
 
     ArrayList<Tile> mtiles;
     ArrayList<Tile> sector;
@@ -110,30 +110,10 @@
             }
         });
 
-        ctltf = new JTextField("" + t.changeToLevel);
-        ldtf = new JTextField("" + t.leaveDirection);
-        edtf = new JTextField("" + t.exitDir);
-        xntf = new JTextField("" + t.xnew);
-        yntf = new JTextField("" + t.ynew);
         poxtf = new JTextField("" + t.pixelOffsetX);
         poytf = new JTextField("" + t.pixelOffsetY);
-        ctll = new JLabel("Change To Level:");
-        ldl = new JLabel("Leave Direction:");
-        edl = new JLabel("Exit Direction:");
-        xnl = new JLabel("New X:");
-        ynl = new JLabel("New Y:");
         poxl = new JLabel("POX:");
         poyl = new JLabel("POY:");
-        c.add(ctll);
-        c.add(ctltf);
-        c.add(ldl);
-        c.add(ldtf);
-        c.add(edl);
-        c.add(edtf);
-        c.add(xnl);
-        c.add(xntf);
-        c.add(ynl);
-        c.add(yntf);
         c.add(poxl);
         c.add(poxtf);
         c.add(poyl);
@@ -159,11 +139,6 @@
             t.setImageName(imgname.getText());
             t.canBeSteppedOn = cbso.isSelected();
 
-            t.changeToLevel = Integer.parseInt(ctltf.getText());
-            t.leaveDirection = Direction.get(Integer.parseInt(ldtf.getText()));
-            t.exitDir = Direction.get(Integer.parseInt(edtf.getText()));
-            t.xnew = Integer.parseInt(xntf.getText());
-            t.ynew = Integer.parseInt(yntf.getText());
             t.pixelOffsetX = Integer.parseInt(poxtf.getText());
             t.pixelOffsetY = Integer.parseInt(poytf.getText());
 
@@ -176,11 +151,6 @@
             t.setImageName(imgname.getText());
             t.canBeSteppedOn = cbso.isSelected();
 
-            t.changeToLevel = Integer.parseInt(ctltf.getText());
-            t.leaveDirection = Direction.get(Integer.parseInt(ldtf.getText()));
-            t.exitDir = Direction.get(Integer.parseInt(edtf.getText()));
-            t.xnew = Integer.parseInt(xntf.getText());
-            t.ynew = Integer.parseInt(yntf.getText());
             t.pixelOffsetX = Integer.parseInt(poxtf.getText());
             t.pixelOffsetY = Integer.parseInt(poytf.getText());