diff --git a/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/celesta.ogg b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/celesta.ogg
new file mode 100644
index 000000000..3b6b03650
Binary files /dev/null and b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/celesta.ogg differ
diff --git a/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/chant.ogg b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/chant.ogg
new file mode 100644
index 000000000..b7647650b
Binary files /dev/null and b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/chant.ogg differ
diff --git a/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/chip_triangle.ogg b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/chip_triangle.ogg
new file mode 100644
index 000000000..941c3dc3e
Binary files /dev/null and b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/chip_triangle.ogg differ
diff --git a/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/drum_steel.ogg b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/drum_steel.ogg
new file mode 100644
index 000000000..5a5b4b632
Binary files /dev/null and b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/drum_steel.ogg differ
diff --git a/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/guitar_electric.ogg b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/guitar_electric.ogg
new file mode 100644
index 000000000..cfd9c2889
Binary files /dev/null and b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/guitar_electric.ogg differ
diff --git a/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/wood_block.ogg b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/wood_block.ogg
new file mode 100644
index 000000000..a412a0634
Binary files /dev/null and b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/note/wood_block.ogg differ
diff --git a/devPacks/inTestingSoundsPack/assets/minecraft/sounds/sounds.json b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/sounds.json
index 8be244c7a..b8a2026d6 100644
--- a/devPacks/inTestingSoundsPack/assets/minecraft/sounds/sounds.json
+++ b/devPacks/inTestingSoundsPack/assets/minecraft/sounds/sounds.json
@@ -45,5 +45,47 @@
         "sounds": [
             "random/whoosh_out.ogg"
         ]
+    },
+    "note.chant": {
+        "subtitle": "subtitle.note.chant",
+        "sounds": [
+            "note/chant.ogg"
+        ]
+    },
+    "note.drum_steel": {
+        "subtitle": "subtitle.note.drum_steel",
+        "sounds": [
+            "note/drum_steel.ogg"
+        ]
+    },
+    "note.chip_triangle": {
+        "subtitle": "subtitle.note.chip_triangle",
+        "sounds": [
+            {
+                "name": "note/chip_triangle.ogg",
+                "volume": 2
+            }
+        ]
+    },
+    "note.guitar_electric": {
+        "subtitle": "subtitle.note.guitar_electric",
+        "sounds": [
+            {
+                "name": "note/guitar_electric.ogg",
+                "volume": 0.75
+            }
+        ]
+    },
+    "note.celesta": {
+        "subtitle": "subtitle.note.celesta",
+        "sounds": [
+            "note/celesta.ogg"
+        ]
+    },
+    "note.wood_block": {
+        "subtitle": "subtitle.note.wood_block",
+        "sounds": [
+            "note/wood_block.ogg"
+        ]
     }
 }
\ No newline at end of file
diff --git a/src/common/resources/assets/minecraft/sounds/sounds.json b/src/common/resources/assets/minecraft/sounds/sounds.json
index e98ecd32b..645098d9f 100644
--- a/src/common/resources/assets/minecraft/sounds/sounds.json
+++ b/src/common/resources/assets/minecraft/sounds/sounds.json
@@ -458,7 +458,10 @@
   "note.bd": {
     "subtitle": "subtitles.note.bd",
     "sounds": [
-      "note/bd.ogg"
+      {
+        "name": "note/bd.ogg",
+        "volume": 1.5
+      }
     ]
   },
   "ui.ui_scroll": {
diff --git a/src/common/resources/lang/en_US/guidebook.lang b/src/common/resources/lang/en_US/guidebook.lang
index bb8235815..8c2ce2cd7 100644
--- a/src/common/resources/lang/en_US/guidebook.lang
+++ b/src/common/resources/lang/en_US/guidebook.lang
@@ -7,6 +7,19 @@ guidebook.section.blast_furnace=Blast Smelting
 guidebook.section.trommel=Trommelling
 guidebook.section.search=Search
 
+guidebook.section.search.error.no_recipes=No recipes found :(
+guidebook.section.search.result.found=%s results found.
+guidebook.section.search.info.modifiers.title=Search Modifiers
+guidebook.section.search.info.modifiers.1=§er:...§r: Search for recipes
+guidebook.section.search.info.modifiers.2=§eu:...§r: Search for usages
+guidebook.section.search.info.modifiers.3=§e#:...§r: Search for item group
+guidebook.section.search.info.modifiers.4=§e@namespace§r: Search in
+guidebook.section.search.info.modifiers.5=namespace
+guidebook.section.search.info.modifiers.6=§e@namespace:group§r: Search
+guidebook.section.search.info.modifiers.7=in recipe group
+guidebook.section.search.info.modifiers.8=§e...!§r: Strict search
+guidebook.section.search.info.modifiers.9=§e...§r: General search
+
 guidebook.section.mob.health=Health:
 guidebook.section.mob.score=Score: %s
 guidebook.section.mob.damage=Damage: %s
diff --git a/src/common/resources/lang/en_US/tile.lang b/src/common/resources/lang/en_US/tile.lang
index ad486a6d8..fd26d17bd 100644
--- a/src/common/resources/lang/en_US/tile.lang
+++ b/src/common/resources/lang/en_US/tile.lang
@@ -1 +1 @@
-tile.stone.name=Stone
tile.stone.desc=A block of solid stone.
tile.basalt.name=Basalt
tile.basalt.desc=A block of solid basalt.
tile.limestone.name=Limestone
tile.limestone.desc=A block of solid limestone.
tile.granite.name=Granite
tile.granite.desc=A block of solid granite.
tile.marble.name=Marble
tile.marble.desc=A block of solid marble.
tile.slate.name=Slate
tile.slate.desc=A block of solid slate.
tile.permafrost.name=Permafrost
tile.permafrost.desc=A block of frozen stone.

tile.cobble.stone.name=Cobblestone
tile.cobble.stone.desc=Stone, smashed apart and reconstituted.
tile.cobble.stone.mossy.name=Mossy Cobblestone
tile.cobble.stone.mossy.desc=Cobblestone with added greenery.
tile.cobble.basalt.name=Cobbled Basalt
tile.cobble.basalt.desc=Basalt, smashed apart and reconstituted.
tile.cobble.limestone.name=Cobbled Limestone
tile.cobble.limestone.desc=Limestone, smashed apart and reconstituted.
tile.cobble.granite.name=Cobbled Granite
tile.cobble.granite.desc=Granite, smashed apart and reconstituted.
tile.cobble.permafrost.name=Cobbled Permafrost
tile.cobble.permafrost.desc=Permafrost, smashed apart and reconstituted.

tile.pillar.marble.name=Marble Pillar
tile.pillar.marble.desc=A block of marble engraved into a pillar.
tile.capstone.marble.name=Marble Capstone
tile.capstone.marble.desc=A pillar capstone made of solid marble.

tile.sandstone.name=Sandstone
tile.sandstone.desc=Compacted sand.

tile.stone.carved.name=Carved Stone
tile.stone.carved.desc=Polished Stone with lines hewn through the middle.
tile.granite.carved.name=Carved Granite
tile.granite.carved.desc=Polished Granite with lines hewn through the middle.
tile.limestone.carved.name=Carved Limestone
tile.limestone.carved.desc=Polished Limestone with lines hewn through the middle.
tile.basalt.carved.name=Carved Basalt
tile.basalt.carved.desc=Polished Basalt with lines hewn through the middle.
tile.permafrost.carved.name=Carved Permafrost
tile.permafrost.carved.desc=Polished Permafrost with lines hewn through the middle.
tile.netherrack.carved.name=Carved Netherrack
tile.netherrack.carved.desc=Polished Netherrack with lines hewn through the middle.

tile.planks.oak.name=Wooden Planks
tile.planks.oak.desc=Processed tree insides.
tile.planks.oak.painted.name=Mystery Planks
tile.planks.oak.painted.desc=How did you get this?!
tile.planks.oak.painted.black.name=Black Wooden Planks
tile.planks.oak.painted.black.desc=Wooden planks, stained black.
tile.planks.oak.painted.red.name=Red Wooden Planks
tile.planks.oak.painted.red.desc=Wooden planks, stained red.
tile.planks.oak.painted.green.name=Green Wooden Planks
tile.planks.oak.painted.green.desc=Wooden planks, stained green.
tile.planks.oak.painted.brown.name=Brown Wooden Planks
tile.planks.oak.painted.brown.desc=Wooden planks, stained brown.
tile.planks.oak.painted.blue.name=Blue Wooden Planks
tile.planks.oak.painted.blue.desc=Wooden planks, stained blue.
tile.planks.oak.painted.purple.name=Purple Wooden Planks
tile.planks.oak.painted.purple.desc=Wooden planks, stained purple.
tile.planks.oak.painted.cyan.name=Cyan Wooden Planks
tile.planks.oak.painted.cyan.desc=Wooden planks, stained cyan.
tile.planks.oak.painted.silver.name=Light Gray Wooden Planks
tile.planks.oak.painted.silver.desc=Wooden planks, stained light gray.
tile.planks.oak.painted.gray.name=Gray Wooden Planks
tile.planks.oak.painted.gray.desc=Wooden planks, stained gray.
tile.planks.oak.painted.pink.name=Pink Wooden Planks
tile.planks.oak.painted.pink.desc=Wooden planks, stained pink.
tile.planks.oak.painted.lime.name=Lime Wooden Planks
tile.planks.oak.painted.lime.desc=Wooden planks, stained lime.
tile.planks.oak.painted.yellow.name=Yellow Wooden Planks
tile.planks.oak.painted.yellow.desc=Wooden planks, stained yellow.
tile.planks.oak.painted.lightblue.name=Light Blue Wooden Planks
tile.planks.oak.painted.lightblue.desc=Wooden planks, stained light blue.
tile.planks.oak.painted.magenta.name=Magenta Wooden Planks
tile.planks.oak.painted.magenta.desc=Wooden planks, stained magenta.
tile.planks.oak.painted.orange.name=Orange Wooden Planks
tile.planks.oak.painted.orange.desc=Wooden planks, stained orange.
tile.planks.oak.painted.white.name=White Wooden Planks
tile.planks.oak.painted.white.desc=Wooden planks, stained white.

tile.torch.coal.name=Torch
tile.torch.coal.desc=Helps light the way.

tile.ladder.oak.name=Oak Ladder
tile.ladder.oak.desc=For very rapid vertical movement.

tile.fence.planks.oak.name=Oak Fence
tile.fence.planks.oak.desc=Too tall to jump over.

tile.fence.planks.oak.painted.name=Mystery Wooden Fence
tile.fence.planks.oak.painted.desc=How did you get this?!
tile.fence.planks.oak.painted.black.name=Black Wooden Fence
tile.fence.planks.oak.painted.black.desc=A wooden fence, stained black.
tile.fence.planks.oak.painted.red.name=Red Wooden Fence
tile.fence.planks.oak.painted.red.desc=A wooden fence, stained red.
tile.fence.planks.oak.painted.green.name=Green Wooden Fence
tile.fence.planks.oak.painted.green.desc=A wooden fence, stained green.
tile.fence.planks.oak.painted.brown.name=Brown Wooden Fence
tile.fence.planks.oak.painted.brown.desc=A wooden fence, stained brown.
tile.fence.planks.oak.painted.blue.name=Blue Wooden Fence
tile.fence.planks.oak.painted.blue.desc=A wooden fence, stained blue.
tile.fence.planks.oak.painted.purple.name=Purple Wooden Fence
tile.fence.planks.oak.painted.purple.desc=A wooden fence, stained purple.
tile.fence.planks.oak.painted.cyan.name=Cyan Wooden Fence
tile.fence.planks.oak.painted.cyan.desc=A wooden fence, stained cyan.
tile.fence.planks.oak.painted.silver.name=Light Gray Wooden Fence
tile.fence.planks.oak.painted.silver.desc=A wooden fence, stained light gray.
tile.fence.planks.oak.painted.gray.name=Gray Wooden Fence
tile.fence.planks.oak.painted.gray.desc=A wooden fence, stained gray.
tile.fence.planks.oak.painted.pink.name=Pink Wooden Fence
tile.fence.planks.oak.painted.pink.desc=A wooden fence, stained pink.
tile.fence.planks.oak.painted.lime.name=Lime Wooden Fence
tile.fence.planks.oak.painted.lime.desc=A wooden fence, stained lime.
tile.fence.planks.oak.painted.yellow.name=Yellow Wooden Fence
tile.fence.planks.oak.painted.yellow.desc=A wooden fence, stained yellow.
tile.fence.planks.oak.painted.lightblue.name=Light Blue Wooden Fence
tile.fence.planks.oak.painted.lightblue.desc=A wooden fence, stained light blue.
tile.fence.planks.oak.painted.magenta.name=Magenta Wooden Fence
tile.fence.planks.oak.painted.magenta.desc=A wooden fence, stained magenta.
tile.fence.planks.oak.painted.orange.name=Orange Wooden Fence
tile.fence.planks.oak.painted.orange.desc=A wooden fence, stained orange.
tile.fence.planks.oak.painted.white.name=White Wooden Fence
tile.fence.planks.oak.painted.white.desc=A wooden fence, stained white.

tile.fencegate.planks.oak.name=Wooden Fence Gate
tile.fencegate.planks.oak.desc=Like a door but for fences.

tile.fencegate.planks.oak.painted.name=Mystery Wooden Fence Gate
tile.fencegate.planks.oak.painted.desc=How did you get this?!
tile.fencegate.planks.oak.painted.black.name=Black Wooden Fence Gate
tile.fencegate.planks.oak.painted.black.desc=A wooden fence gate, stained black.
tile.fencegate.planks.oak.painted.red.name=Red Wooden Fence Gate
tile.fencegate.planks.oak.painted.red.desc=A wooden fence gate, stained red.
tile.fencegate.planks.oak.painted.green.name=Green Wooden Fence Gate
tile.fencegate.planks.oak.painted.green.desc=A wooden fence gate, stained green.
tile.fencegate.planks.oak.painted.brown.name=Brown Wooden Fence Gate
tile.fencegate.planks.oak.painted.brown.desc=A wooden fence gate, stained brown.
tile.fencegate.planks.oak.painted.blue.name=Blue Wooden Fence Gate
tile.fencegate.planks.oak.painted.blue.desc=A wooden fence gate, stained blue.
tile.fencegate.planks.oak.painted.purple.name=Purple Wooden Fence Gate
tile.fencegate.planks.oak.painted.purple.desc=A wooden fence gate, stained purple.
tile.fencegate.planks.oak.painted.cyan.name=Cyan Wooden Fence Gate
tile.fencegate.planks.oak.painted.cyan.desc=A wooden fence gate, stained cyan.
tile.fencegate.planks.oak.painted.silver.name=Light Gray Wooden Fence Gate
tile.fencegate.planks.oak.painted.silver.desc=A wooden fence gate, stained light gray.
tile.fencegate.planks.oak.painted.gray.name=Gray Wooden Fence Gate
tile.fencegate.planks.oak.painted.gray.desc=A wooden fence gate, stained gray.
tile.fencegate.planks.oak.painted.pink.name=Pink Wooden Fence Gate
tile.fencegate.planks.oak.painted.pink.desc=A wooden fence gate, stained pink.
tile.fencegate.planks.oak.painted.lime.name=Lime Wooden Fence Gate
tile.fencegate.planks.oak.painted.lime.desc=A wooden fence gate, stained lime.
tile.fencegate.planks.oak.painted.yellow.name=Yellow Wooden Fence Gate
tile.fencegate.planks.oak.painted.yellow.desc=A wooden fence gate, stained yellow.
tile.fencegate.planks.oak.painted.lightblue.name=Light Blue Wooden Fence Gate
tile.fencegate.planks.oak.painted.lightblue.desc=A wooden fence gate, stained light blue.
tile.fencegate.planks.oak.painted.magenta.name=Magenta Wooden Fence Gate
tile.fencegate.planks.oak.painted.magenta.desc=A wooden fence gate, stained magenta.
tile.fencegate.planks.oak.painted.orange.name=Orange Wooden Fence Gate
tile.fencegate.planks.oak.painted.orange.desc=A wooden fence gate, stained orange.
tile.fencegate.planks.oak.painted.white.name=White Wooden Fence Gate
tile.fencegate.planks.oak.painted.white.desc=A wooden fence gate, stained white.

tile.bookshelf.planks.oak.name=Bookshelf
tile.bookshelf.planks.oak.desc=A repository of knowledge.

tile.wool.name=Wool
tile.wool.desc=How did you get this?!
tile.wool.black.name=Black Wool
tile.wool.black.desc=Sheep's wool, dyed black.
tile.wool.red.name=Red Wool
tile.wool.red.desc=Sheep's wool, dyed red.
tile.wool.green.name=Green Wool
tile.wool.green.desc=Sheep's wool, dyed green.
tile.wool.brown.name=Brown Wool
tile.wool.brown.desc=Sheep's wool, dyed brown.
tile.wool.blue.name=Blue Wool
tile.wool.blue.desc=Sheep's wool, dyed blue.
tile.wool.purple.name=Purple Wool
tile.wool.purple.desc=Sheep's wool, dyed purple.
tile.wool.cyan.name=Cyan Wool
tile.wool.cyan.desc=Sheep's wool, dyed cyan.
tile.wool.silver.name=Light Gray Wool
tile.wool.silver.desc=Sheep's wool, dyed light gray.
tile.wool.gray.name=Gray Wool
tile.wool.gray.desc=Sheep's wool, dyed gray.
tile.wool.pink.name=Pink Wool
tile.wool.pink.desc=Sheep's wool, dyed pink.
tile.wool.lime.name=Lime Wool
tile.wool.lime.desc=Sheep's wool, dyed lime.
tile.wool.yellow.name=Yellow Wool
tile.wool.yellow.desc=Sheep's wool, dyed yellow.
tile.wool.lightblue.name=Light Blue Wool
tile.wool.lightblue.desc=Sheep's wool, dyed light blue.
tile.wool.magenta.name=Magenta Wool
tile.wool.magenta.desc=Sheep's wool, dyed magenta.
tile.wool.orange.name=Orange Wool
tile.wool.orange.desc=Sheep's wool, dyed orange.
tile.wool.white.name=White Wool
tile.wool.white.desc=Sheep's wool, dyed white.

tile.brick.clay.name=Clay Bricks
tile.brick.clay.desc=Stacked bricks of baked clay.
tile.brick.stone.polished.name=Polished Stone Bricks
tile.brick.stone.polished.desc=Stacked bricks of polished stone.
tile.brick.stone.polished.mossy.name=Mossy Polished Stone Bricks
tile.brick.stone.polished.mossy.desc=Stacked bricks of polished stone with added greenery.
tile.brick.sandstone.name=Sandstone Bricks
tile.brick.sandstone.desc=Stacked bricks of sandstone.
tile.brick.gold.name=Gold Bricks
tile.brick.gold.desc=Stacked bricks of gold.
tile.brick.lapis.name=Lapis Lazuli Bricks
tile.brick.lapis.desc=Stacked bricks of lapis lazuli.
tile.brick.basalt.name=Basalt Bricks
tile.brick.basalt.desc=Stacked bricks of basalt.
tile.brick.limestone.name=Limestone Bricks
tile.brick.limestone.desc=Stacked bricks of limestone.
tile.brick.granite.name=Granite Bricks
tile.brick.granite.desc=Stacked bricks of granite.
tile.brick.marble.name=Marble Bricks
tile.brick.marble.desc=Stacked bricks of marble.
tile.brick.slate.name=Slate Bricks
tile.brick.slate.desc=Stacked bricks of slate.
tile.brick.stone.name=Stone Bricks
tile.brick.stone.desc=Stacked bricks of stone.
tile.brick.permafrost.name=Permafrost Bricks
tile.brick.permafrost.desc=Stacked bricks of permafrost.
tile.brick.iron.name=Iron Bricks
tile.brick.iron.desc=Stacked bricks of iron.

tile.slab.planks.oak.name=Wooden Slab
tile.slab.planks.oak.desc=A slab of wooden planks.
tile.slab.cobble.stone.name=Cobblestone Slab
tile.slab.cobble.stone.desc=A slab of cobblestone.
tile.slab.sandstone.name=Sandstone Slab
tile.slab.sandstone.desc=A slab of sandstone.
tile.slab.brick.stone.polished.name=Polished Stone Brick Slab
tile.slab.brick.stone.polished.desc=A slab of polished stone bricks.
tile.slab.stone.carved.name=Polished Stone Slab
tile.slab.stone.carved.desc=A slab of polished stone.
tile.slab.brick.marble.name=Marble Brick Slab
tile.slab.brick.marble.desc=A slab of marble bricks.
tile.slab.brick.clay.name=Clay Brick Slab
tile.slab.brick.clay.desc=A slab of clay bricks.
tile.slab.capstone.marble.name=Marble Capstone Slab
tile.slab.capstone.marble.desc=Marble sculpted into a capstone.
tile.slab.cobble.basalt.name=Cobbled Basalt Slab
tile.slab.cobble.basalt.desc=A slab of cobbled basalt.
tile.slab.cobble.limestone.name=Cobbled Limestone Slab
tile.slab.cobble.limestone.desc=A slab of cobbled limestone.
tile.slab.cobble.granite.name=Cobbled Granite Slab
tile.slab.cobble.granite.desc=A slab of cobbled granite.
tile.slab.brick.basalt.name=Basalt Brick Slab
tile.slab.brick.basalt.desc=A slab of basalt bricks.
tile.slab.brick.limestone.name=Limestone Brick Slab
tile.slab.brick.limestone.desc=A slab of limestone bricks.
tile.slab.brick.granite.name=Granite Brick Slab
tile.slab.brick.granite.desc=A slab of granite bricks.
tile.slab.brick.slate.name=Slate Brick Slab
tile.slab.brick.slate.desc=A slab of slate bricks.
tile.slab.brick.stone.name=Stone Brick Slab
tile.slab.brick.stone.desc=A slab of stone bricks.
tile.slab.granite.carved.name=Polished Granite Slab
tile.slab.granite.carved.desc=A slab of polished granite.
tile.slab.limestone.carved.name=Polished Limestone Slab
tile.slab.limestone.carved.desc=A slab of polished limestone.
tile.slab.basalt.carved.name=Polished Basalt Slab
tile.slab.basalt.carved.desc=A slab of polished basalt.
tile.slab.permafrost.carved.name=Polished Permafrost Slab
tile.slab.permafrost.carved.desc=A slab of polished permafrost.

tile.slab.planks.oak.painted.name=Mystery Wooden Slab
tile.slab.planks.oak.painted.desc=How did you get this?!
tile.slab.planks.oak.painted.black.name=Black Wooden Slab
tile.slab.planks.oak.painted.black.desc=A slab of wooden planks, stained black.
tile.slab.planks.oak.painted.red.name=Red Wooden Slab
tile.slab.planks.oak.painted.red.desc=A slab of wooden planks, stained red.
tile.slab.planks.oak.painted.green.name=Green Wooden Slab
tile.slab.planks.oak.painted.green.desc=A slab of wooden planks, stained green.
tile.slab.planks.oak.painted.brown.name=Brown Wooden Slab
tile.slab.planks.oak.painted.brown.desc=A slab of wooden planks, stained brown.
tile.slab.planks.oak.painted.blue.name=Blue Wooden Slab
tile.slab.planks.oak.painted.blue.desc=A slab of wooden planks, stained blue.
tile.slab.planks.oak.painted.purple.name=Purple Wooden Slab
tile.slab.planks.oak.painted.purple.desc=A slab of wooden planks, stained purple.
tile.slab.planks.oak.painted.cyan.name=Cyan Wooden Slab
tile.slab.planks.oak.painted.cyan.desc=A slab of wooden planks, stained cyan.
tile.slab.planks.oak.painted.silver.name=Light Gray Wooden Slab
tile.slab.planks.oak.painted.silver.desc=A slab of wooden planks, stained light gray.
tile.slab.planks.oak.painted.gray.name=Gray Wooden Slab
tile.slab.planks.oak.painted.gray.desc=A slab of wooden planks, stained gray.
tile.slab.planks.oak.painted.pink.name=Pink Wooden Slab
tile.slab.planks.oak.painted.pink.desc=A slab of wooden planks, stained pink.
tile.slab.planks.oak.painted.lime.name=Lime Wooden Slab
tile.slab.planks.oak.painted.lime.desc=A slab of wooden planks, stained lime.
tile.slab.planks.oak.painted.yellow.name=Yellow Wooden Slab
tile.slab.planks.oak.painted.yellow.desc=A slab of wooden planks, stained yellow.
tile.slab.planks.oak.painted.lightblue.name=Light Blue Wooden Slab
tile.slab.planks.oak.painted.lightblue.desc=A slab of wooden planks, stained light blue.
tile.slab.planks.oak.painted.magenta.name=Magenta Wooden Slab
tile.slab.planks.oak.painted.magenta.desc=A slab of wooden planks, stained magenta.
tile.slab.planks.oak.painted.orange.name=Orange Wooden Slab
tile.slab.planks.oak.painted.orange.desc=A slab of wooden planks, stained orange.
tile.slab.planks.oak.painted.white.name=White Wooden Slab
tile.slab.planks.oak.painted.white.desc=A slab of wooden planks, stained white.
tile.slab.cobble.permafrost.name=Cobbled Permafrost Slab
tile.slab.cobble.permafrost.desc=A slab of cobbled permafrost.
tile.slab.brick.sandstone.name=Sandstone Brick Slab
tile.slab.brick.sandstone.desc=A slab of sandstone bricks.
tile.slab.brick.permafrost.name=Permafrost Brick Slab
tile.slab.brick.permafrost.desc=A slab of permafrost bricks.

tile.stairs.planks.oak.name=Wooden Stairs
tile.stairs.planks.oak.desc=Wooden block used for rapid vertical movement.
tile.stairs.cobble.stone.name=Cobblestone Stairs
tile.stairs.cobble.stone.desc=Cobblestone block used for rapid vertical movement.
tile.stairs.brick.stone.polished.name=Polished Stone Brick Stairs
tile.stairs.brick.stone.polished.desc=Polished stone brick block used for rapid vertical movement.
tile.stairs.brick.marble.name=Marble Brick Stairs
tile.stairs.brick.marble.desc=Marble brick block used for rapid vertical movement.
tile.stairs.cobble.basalt.name=Cobbled Basalt Stairs
tile.stairs.cobble.basalt.desc=Cobbled basalt block used for rapid vertical movement.
tile.stairs.cobble.limestone.name=Cobbled Limestone Stairs
tile.stairs.cobble.limestone.desc=Cobbled limestone block used for rapid vertical movement.
tile.stairs.cobble.granite.name=Cobbled Granite Stairs
tile.stairs.cobble.granite.desc=Cobbled granite block used for rapid vertical movement.
tile.stairs.brick.basalt.name=Basalt Brick Stairs
tile.stairs.brick.basalt.desc=Basalt brick block used for rapid vertical movement.
tile.stairs.brick.limestone.name=Limestone Brick Stairs
tile.stairs.brick.limestone.desc=Limestone brick block used for rapid vertical movement.
tile.stairs.brick.granite.name=Granite Brick Stairs
tile.stairs.brick.granite.desc=Granite brick block used for rapid vertical movement.
tile.stairs.brick.clay.name=Clay Brick Stairs
tile.stairs.brick.clay.desc=Clay brick block used for rapid vertical movement.
tile.stairs.brick.slate.name=Slate Brick Stairs
tile.stairs.brick.slate.desc=Slate brick block used for rapid vertical movement.
tile.stairs.brick.stone.name=Stone Brick Stairs
tile.stairs.brick.stone.desc=Stone brick block used for rapid vertical movement.
tile.stairs.sandstone.name=Sandstone Stairs
tile.stairs.sandstone.desc=Sandstone block used for rapid vertical movement.
tile.stairs.cobble.permafrost.name=Cobbled Permafrost Stairs
tile.stairs.cobble.permafrost.desc=Cobbled permafrost block used for rapid vertical movement.
tile.stairs.brick.sandstone.name=Sandstone Brick Stairs
tile.stairs.brick.sandstone.desc=Sandstone brick block used for rapid vertical movement.
tile.stairs.brick.permafrost.name=Permafrost Brick Stairs
tile.stairs.brick.permafrost.desc=Permafrost brick block used for rapid vertical movement.

tile.stairs.planks.oak.painted.name=Mystery Wooden Stairs
tile.stairs.planks.oak.painted.desc=How did you get this?!
tile.stairs.planks.oak.painted.black.name=Black Wooden Stairs
tile.stairs.planks.oak.painted.black.desc=Wooden steps, stained black.
tile.stairs.planks.oak.painted.red.name=Red Wooden Stairs
tile.stairs.planks.oak.painted.red.desc=Wooden steps, stained red.
tile.stairs.planks.oak.painted.green.name=Green Wooden Stairs
tile.stairs.planks.oak.painted.green.desc=Wooden steps, stained green.
tile.stairs.planks.oak.painted.brown.name=Brown Wooden Stairs
tile.stairs.planks.oak.painted.brown.desc=Wooden steps, stained brown.
tile.stairs.planks.oak.painted.blue.name=Blue Wooden Stairs
tile.stairs.planks.oak.painted.blue.desc=Wooden steps, stained blue.
tile.stairs.planks.oak.painted.purple.name=Purple Wooden Stairs
tile.stairs.planks.oak.painted.purple.desc=Wooden steps, stained purple.
tile.stairs.planks.oak.painted.cyan.name=Cyan Wooden Stairs
tile.stairs.planks.oak.painted.cyan.desc=Wooden steps, stained cyan.
tile.stairs.planks.oak.painted.silver.name=Light Gray Wooden Stairs
tile.stairs.planks.oak.painted.silver.desc=Wooden steps, stained light gray.
tile.stairs.planks.oak.painted.gray.name=Gray Wooden Stairs
tile.stairs.planks.oak.painted.gray.desc=Wooden steps, stained gray.
tile.stairs.planks.oak.painted.pink.name=Pink Wooden Stairs
tile.stairs.planks.oak.painted.pink.desc=Wooden steps, stained pink.
tile.stairs.planks.oak.painted.lime.name=Lime Wooden Stairs
tile.stairs.planks.oak.painted.lime.desc=Wooden steps, stained lime.
tile.stairs.planks.oak.painted.yellow.name=Yellow Wooden Stairs
tile.stairs.planks.oak.painted.yellow.desc=Wooden steps, stained yellow.
tile.stairs.planks.oak.painted.lightblue.name=Light Blue Wooden Stairs
tile.stairs.planks.oak.painted.lightblue.desc=Wooden steps, stained light blue.
tile.stairs.planks.oak.painted.magenta.name=Magenta Wooden Stairs
tile.stairs.planks.oak.painted.magenta.desc=Wooden steps, stained magenta.
tile.stairs.planks.oak.painted.orange.name=Orange Wooden Stairs
tile.stairs.planks.oak.painted.orange.desc=Wooden steps, stained orange.
tile.stairs.planks.oak.painted.white.name=White Wooden Stairs
tile.stairs.planks.oak.painted.white.desc=Wooden steps, stained white.

tile.obsidian.name=Obsidian
tile.obsidian.desc=Rapidly cooled volcanic rock.

tile.glass.name=Glass
tile.glass.desc=Sand heated until it becomes translucent.
tile.glass.tinted.name=Tinted Glass
tile.glass.tinted.desc=Darkened glass that blocks light.

tile.grass.name=Grass
tile.grass.desc=Crisp, crunchy grass.
tile.grass.retro.name=Retro Grass
tile.grass.retro.desc=Crisp, crunchy grass. Smells old.
tile.grass.scorched.name=Scorched Grass
tile.grass.scorched.desc=Grass that has baked in the sun.

tile.path.dirt.name=Dirt Path
tile.path.dirt.desc=Dirt worn down by frequent travelling.

tile.dirt.name=Dirt
tile.dirt.desc=Crumbly brown dirt.
tile.dirt.scorched.name=Scorched Dirt
tile.dirt.scorched.desc=Dirt that has baked in the sun.
tile.dirt.scorched.rich.name=Rich Scorched Dirt
tile.dirt.scorched.rich.desc=Dirt that has baked in the sun, searing in minerals.

tile.mud.name=Mud
tile.mud.desc=Mud sodden to its core.
tile.mud.baked.name=Baked Mud
tile.mud.baked.desc=Mud that's been dried out and cracked.

tile.sponge.dry.name=Sponge
tile.sponge.dry.desc=A dry sponge, good for soaking up water.
tile.sponge.wet.name=Wet Sponge
tile.sponge.wet.desc=A sponge full of water.
tile.pumice.dry.name=Pumice
tile.pumice.dry.desc=A dry porous volcanic rock, good for soaking up lava.
tile.pumice.wet.name=Molten Pumice
tile.pumice.wet.desc=Rock filled with lava.

tile.moss.stone.name=Mossy Stone
tile.moss.stone.desc=Moss covering a block of stone.
tile.moss.basalt.name=Mossy Basalt
tile.moss.basalt.desc=Moss covering a block of basalt.
tile.moss.limestone.name=Mossy Limestone
tile.moss.limestone.desc=Moss covering a block of limestone.
tile.moss.granite.name=Mossy Granite
tile.moss.granite.desc=Moss covering a block of granite.

tile.sand.name=Sand
tile.sand.desc=Gets everywhere.
tile.gravel.name=Gravel
tile.gravel.desc=A loose collection of pebbles.

tile.bedrock.name=Bedrock
tile.bedrock.desc=The toughest substance known to man.
tile.boneshale.name=Bone Shale
tile.boneshale.desc=An incredibly tough white rock torn from the deepest depths.

tile.fluid.water.flowing.name=Flowing Water
tile.fluid.water.flowing.desc=Water that flows when placed.
tile.fluid.water.still.name=Still Water
tile.fluid.water.still.desc=Water that does not flow when placed.
tile.fluid.lava.flowing.name=Flowing Lava
tile.fluid.lava.flowing.desc=Lava that flows when placed.
tile.fluid.lava.still.name=Still Lava
tile.fluid.lava.still.desc=Lava that does not flow when placed.

tile.log.oak.name=Oak Log
tile.log.oak.desc=A log from an oak tree.
tile.log.pine.name=Pine Log
tile.log.pine.desc=A log from a pine tree.
tile.log.birch.name=Birch Log
tile.log.birch.desc=A log from a birch tree.
tile.log.cherry.name=Cherry Log
tile.log.cherry.desc=A log from a cherry tree.
tile.log.eucalyptus.name=Eucalyptus Log
tile.log.eucalyptus.desc=A log from a eucalyptus tree.
tile.log.oak.mossy.name=Mossy Oak Log
tile.log.oak.mossy.desc=A log from a mossy oak tree.
tile.log.thorn.name=Thorn Log
tile.log.thorn.desc=A log from a thorn tree.
tile.log.palm.name=Palm Log
tile.log.palm.desc=A log from a palm tree.

tile.leaves.oak.name=Oak Leaves
tile.leaves.oak.desc=Leaves from an oak tree.
tile.leaves.pine.name=Pine Leaves
tile.leaves.pine.desc=Leaves from a pine tree.
tile.leaves.birch.name=Birch Leaves
tile.leaves.birch.desc=Leaves from a birch tree.
tile.leaves.cherry.name=Cherry Leaves
tile.leaves.cherry.desc=Leaves from a cherry tree.
tile.leaves.eucalyptus.name=Eucalyptus Leaves
tile.leaves.eucalyptus.desc=Leaves from a eucalyptus tree.
tile.leaves.oak.retro.name=Retro Leaves
tile.leaves.oak.retro.desc=Leaves from long ago.
tile.leaves.shrub.name=Shrub Leaves
tile.leaves.shrub.desc=Leaves from a shrub.
tile.leaves.cherry.flowering.name=Flowering Cherry Leaves
tile.leaves.cherry.flowering.desc=Leaves from a cherry tree that are budding with fruit.
tile.leaves.cacao.name=Cacao Leaves
tile.leaves.cacao.desc=Leaves from a cacao tree.
tile.leaves.thorn.name=Thorn Leaves
tile.leaves.thorn.desc=Leaves from a thorn tree.
tile.leaves.palm.name=Palm Leaves
tile.leaves.palm.desc=Leaves from a palm tree.

tile.sapling.oak.name=Oak Sapling
tile.sapling.oak.desc=Plant to grow an oak tree.
tile.sapling.pine.name=Pine Sapling
tile.sapling.pine.desc=Plant to grow a pine tree.
tile.sapling.birch.name=Birch Sapling
tile.sapling.birch.desc=Plant to grow a birch tree.
tile.sapling.cherry.name=Cherry Sapling
tile.sapling.cherry.desc=Plant to grow a cherry tree.
tile.sapling.eucalyptus.name=Eucalyptus Sapling
tile.sapling.eucalyptus.desc=Plant to grow a eucalyptus tree.
tile.sapling.oak.retro.name=Retro Oak Sapling
tile.sapling.oak.retro.desc=Plant to grow a tree from long ago.
tile.sapling.shrub.name=Shrub Sapling
tile.sapling.shrub.desc=Plant to grow a shrub.
tile.sapling.cacao.name=Cacao Sapling
tile.sapling.cacao.desc=Plant to grow a cacao tree.
tile.sapling.thorn.name=Thorn Sapling
tile.sapling.thorn.desc=Plant to grow a thorn tree.
tile.sapling.palm.name=Palm Sapling
tile.sapling.palm.desc=Plant to grow a palm tree.

tile.tallgrass.name=Tall Grass
tile.tallgrass.desc=Lush, growing grass.
tile.tallgrass.fern.name=Fern
tile.tallgrass.fern.desc=A fern plant.
tile.deadbush.name=Dead Bush
tile.deadbush.desc=A dried and withered plant.
tile.spinifex.name=Spinifex
tile.spinifex.desc=A spindly, thin grass from dry regions.
tile.algae.name=Algae
tile.algae.desc=Gooey vegetation that floats on the water's surface.

tile.flower.yellow.name=Dandelion
tile.flower.yellow.desc=A beautiful yellow flower.
tile.flower.red.name=Rose
tile.flower.red.desc=A beautiful red flower.
tile.flower.purple.name=Heather
tile.flower.purple.desc=Sprigs of purple petals. Brings good luck.
tile.flower.lightblue.name=Bluebell
tile.flower.lightblue.desc=A sad-looking blue flower.
tile.flower.pink.name=Orchid
tile.flower.pink.desc=A beautiful pink flower.
tile.flower.orange.name=Marigold
tile.flower.orange.desc=A beautiful orange flower.

tile.mushroom.red.name=Red Mushroom
tile.mushroom.red.desc=A tasty red mushroom. Good for stew.
tile.mushroom.brown.name=Brown Mushroom
tile.mushroom.brown.desc=A tasty brown mushroom. Good for stew.

tile.ore.coal.stone.name=Stone Coal Ore
tile.ore.coal.stone.desc=A chunk of coal embedded in stone.
tile.ore.coal.basalt.name=Basalt Coal Ore
tile.ore.coal.basalt.desc=A chunk of coal embedded in basalt.
tile.ore.coal.limestone.name=Limestone Coal Ore
tile.ore.coal.limestone.desc=A chunk of coal embedded in limestone.
tile.ore.coal.granite.name=Granite Coal Ore
tile.ore.coal.granite.desc=A chunk of coal embedded in granite.
tile.ore.coal.permafrost.name=Permafrost Coal Ore
tile.ore.coal.permafrost.desc=A chunk of coal embedded in permafrost.

tile.ore.iron.stone.name=Stone Iron Ore
tile.ore.iron.stone.desc=Iron nuggets embedded in stone.
tile.ore.iron.basalt.name=Basalt Iron Ore
tile.ore.iron.basalt.desc=Iron nuggets embedded in basalt.
tile.ore.iron.limestone.name=Limestone Iron Ore
tile.ore.iron.limestone.desc=Iron nuggets embedded in limestone.
tile.ore.iron.granite.name=Granite Iron Ore
tile.ore.iron.granite.desc=Iron nuggets embedded in granite.
tile.ore.iron.permafrost.name=Permafrost Iron Ore
tile.ore.iron.permafrost.desc=Iron nuggets embedded in permafrost.

tile.ore.gold.stone.name=Stone Gold Ore
tile.ore.gold.stone.desc=Gold nuggets embedded in stone.
tile.ore.gold.basalt.name=Basalt Gold Ore
tile.ore.gold.basalt.desc=Gold nuggets embedded in basalt.
tile.ore.gold.limestone.name=Limestone Gold Ore
tile.ore.gold.limestone.desc=Gold nuggets embedded in limestone.
tile.ore.gold.granite.name=Granite Gold Ore
tile.ore.gold.granite.desc=Gold nuggets embedded in granite.
tile.ore.gold.permafrost.name=Permafrost Gold Ore
tile.ore.gold.permafrost.desc=Gold nuggets embedded in permafrost.

tile.ore.lapis.stone.name=Stone Lapis Lazuli Ore
tile.ore.lapis.stone.desc=Chunks of lapis lazuli embedded in stone.
tile.ore.lapis.basalt.name=Basalt Lapis Lazuli Ore
tile.ore.lapis.basalt.desc=Chunks of lapis lazuli embedded in basalt.
tile.ore.lapis.limestone.name=Limestone Lapis Lazuli Ore
tile.ore.lapis.limestone.desc=Chunks of lapis lazuli embedded in limestone.
tile.ore.lapis.granite.name=Granite Lapis Lazuli Ore
tile.ore.lapis.granite.desc=Chunks of lapis lazuli embedded in granite.
tile.ore.lapis.permafrost.name=Permafrost Lapis Lazuli Ore
tile.ore.lapis.permafrost.desc=Chunks of lapis lazuli embedded in permafrost.

tile.ore.redstone.stone.name=Stone Redstone Ore
tile.ore.redstone.stone.desc=Red dust embedded in stone.
tile.ore.redstone.basalt.name=Basalt Redstone Ore
tile.ore.redstone.basalt.desc=Red dust embedded in basalt.
tile.ore.redstone.limestone.name=Limestone Redstone Ore
tile.ore.redstone.limestone.desc=Red dust embedded in limestone.
tile.ore.redstone.granite.name=Granite Redstone Ore
tile.ore.redstone.granite.desc=Red dust embedded in granite.
tile.ore.redstone.permafrost.name=Permafrost Redstone Ore
tile.ore.redstone.permafrost.desc=Red dust embedded in permafrost.
tile.ore.redstone.glowing.stone.name=Glowing Stone Redstone Ore
tile.ore.redstone.glowing.stone.desc=Red dust embedded in stone. Emits a faint light.
tile.ore.redstone.glowing.basalt.name=Glowing Basalt Redstone Ore
tile.ore.redstone.glowing.basalt.desc=Red dust embedded in basalt. Emits a faint light.
tile.ore.redstone.glowing.limestone.name=Glowing Limestone Redstone Ore
tile.ore.redstone.glowing.limestone.desc=Red dust embedded in limestone. Emits a faint light.
tile.ore.redstone.glowing.granite.name=Glowing Granite Redstone Ore
tile.ore.redstone.glowing.granite.desc=Red dust embedded in granite. Emits a faint light.
tile.ore.redstone.glowing.permafrost.name=Glowing Permafrost Redstone Ore
tile.ore.redstone.glowing.permafrost.desc=Red dust embedded in permafrost. Emits a faint light.

tile.ore.diamond.stone.name=Stone Diamond Ore
tile.ore.diamond.stone.desc=A chunk of diamond embedded in stone.
tile.ore.diamond.basalt.name=Basalt Diamond Ore
tile.ore.diamond.basalt.desc=A chunk of diamond embedded in basalt.
tile.ore.diamond.limestone.name=Limestone Diamond Ore
tile.ore.diamond.limestone.desc=A chunk of diamond embedded in limestone.
tile.ore.diamond.granite.name=Granite Diamond Ore
tile.ore.diamond.granite.desc=A chunk of diamond embedded in granite.
tile.ore.diamond.permafrost.name=Permafrost Diamond Ore
tile.ore.diamond.permafrost.desc=A chunk of diamond embedded in permafrost.

tile.ore.nethercoal.netherrack.name=Nether Coal Ore
tile.ore.nethercoal.netherrack.desc=A lump of Nether Coal embedded in netherrack.

tile.block.coal.name=Block of Coal
tile.block.coal.desc=A solid block of coal.
tile.block.iron.name=Block of Iron
tile.block.iron.desc=A solid block of iron. Heavy!
tile.block.gold.name=Block of Gold
tile.block.gold.desc=A solid block of gold, for flaunting your bling.
tile.block.lapis.name=Block of Lapis Lazuli
tile.block.lapis.desc=A solid block of lapis lazuli.
tile.block.redstone.name=Block of Redstone
tile.block.redstone.desc=A solid block of redstone.
tile.block.diamond.name=Block of Diamond
tile.block.diamond.desc=A solid block of diamond. Well done you.
tile.block.nethercoal.name=Block of Nether Coal
tile.block.nethercoal.desc=A solid block of Nether Coal.
tile.block.steel.name=Block of Steel
tile.block.steel.desc=A solid block of steel.
tile.block.quartz.name=Block of Quartz
tile.block.quartz.desc=A solid block of quartz.
tile.block.olivine.name=Block of Olivine
tile.block.olivine.desc=A solid block of olivine.
tile.block.charcoal.name=Block of Charcoal
tile.block.charcoal.desc=A solid block of charcoal.

tile.wire.redstone.name=Redstone Wire
tile.wire.redstone.desc=A strand of redstone dust laid on the ground.

tile.torch.redstone.idle.name=Redstone Torch
tile.torch.redstone.idle.desc=Emits a constant redstone signal.
tile.torch.redstone.active.name=Redstone Torch
tile.torch.redstone.active.desc=Emits a constant redstone signal.

tile.button.stone.name=Stone Button
tile.button.stone.desc=Emits a brief redstone signal when pressed.

tile.lever.cobble.stone.name=Cobblestone Lever
tile.lever.cobble.stone.desc=Allows turning a redstone signal on or off.

tile.pressureplate.stone.name=Stone Pressure Plate
tile.pressureplate.stone.desc=Emits a redstone signal when living creatures step on it.
tile.pressureplate.planks.oak.name=Wooden Pressure Plate
tile.pressureplate.planks.oak.desc=Emits a redstone signal when anything steps on it.
tile.pressureplate.cobble.stone.name=Cobblestone Pressure Plate
tile.pressureplate.cobble.stone.desc=Emits a redstone signal when players step on it.

tile.motionsensor.idle.name=Motion Sensor
tile.motionsensor.idle.desc=Emits a redstone signal when something moves past it.
tile.motionsensor.active.name=Active Motion Sensor
tile.motionsensor.active.desc=Emits a redstone signal when something moves past it.

tile.repeater.idle.name=Redstone Repeater
tile.repeater.idle.desc=Repeats redstone signals over a distance.
tile.repeater.active.name=Redstone Repeater
tile.repeater.active.desc=Repeats redstone signals over a distance.

tile.piston.base.name=Piston
tile.piston.base.desc=Pushes blocks but does not pull them.
tile.piston.base.sticky.name=Sticky Piston
tile.piston.base.sticky.desc=Pushes and pulls blocks.
tile.piston.head.name=Piston Head
tile.piston.head.desc=The pushy part of the piston.
tile.piston.moving.name=Piston Mover
tile.piston.moving.desc=The invisible moving part of the piston.
tile.piston.base.steel.name=Reinforced Piston
tile.piston.base.steel.desc=Pushes blocks and entities with immense force.
tile.piston.head.steel.name=Reinforced Piston Head
tile.piston.head.steel.desc=The pushy part of the steel piston.

tile.noteblock.name=Note Block
tile.noteblock.desc=Plays a musical note when powered.

tile.rail.name=Rail
tile.rail.desc=For rapid horizontal movement via minecart.
tile.rail.powered.name=Powered Rail
tile.rail.powered.desc=Makes minecarts go faster when powered.
tile.rail.detector.name=Detector Rail
tile.rail.detector.desc=Emits a redstone signal when a minecart crosses it.

tile.spikes.name=Spike Trap
tile.spikes.desc=Deactivates when powered. Technically a war crime.

tile.dispenser.cobble.stone.name=Dispenser
tile.dispenser.cobble.stone.desc=Fires items out of the hole in the front.
tile.activator.cobble.netherrack.name=Activator
tile.activator.cobble.netherrack.desc=Uses items for you.

tile.trapdoor.planks.oak.name=Oak Trapdoor
tile.trapdoor.planks.oak.desc=Like a door, but flat.
tile.trapdoor.iron.name=Iron Trapdoor
tile.trapdoor.iron.desc=Like a door, but flat and made of iron.
tile.trapdoor.glass.name=Glass Trapdoor
tile.trapdoor.glass.desc=Useless at its job.

tile.tnt.name=TNT
tile.tnt.desc=Goes off with a bang.

tile.door.planks.oak.bottom.name=Bottom Wooden Door
tile.door.planks.oak.bottom.desc=/give Honeydew 64 46
tile.door.planks.oak.top.name=Top Wooden Door
tile.door.planks.oak.top.desc=Oh, wait, that's not TNT, that's half a door.
tile.door.iron.bottom.name=Bottom Iron Door
tile.door.iron.bottom.desc=Not much good on its own.
tile.door.iron.top.name=Top Iron Door
tile.door.iron.top.desc=Could use a friend.

tile.mesh.name=Mesh Block
tile.mesh.desc=Allows items to pass through but nothing else.
tile.mesh.gold.name=Gold Mesh Block
tile.mesh.gold.desc=Allows a specified item to pass through but nothing else.

tile.bed.name=Bed
tile.bed.desc=Bed!
tile.seat.name=Seat
tile.seat.desc=Sit down and relax.

tile.cobweb.name=Cobweb
tile.cobweb.desc=Sticky silky strands woven by spiders.

tile.fire.name=Fire
tile.fire.desc=Ouch, fire hot!
tile.brazier.inactive.name=Brazier
tile.brazier.inactive.desc=A safe place to keep a fire.
tile.brazier.active.name=Lit Brazier
tile.brazier.active.desc=A safe place to keep a fire.

tile.mobspawner.name=Mob Spawner
tile.mobspawner.desc=A cage filled with horror.
tile.mobspawner.deactivated.name=Deactivated Mob Spawner
tile.mobspawner.deactivated.desc=A cage no longer filled with horror.

tile.workbench.name=Workbench
tile.workbench.desc=For bigger projects.

tile.furnace.stone.idle.name=Furnace
tile.furnace.stone.idle.desc=For melting, heating, and cooking blocks and items.
tile.furnace.stone.active.name=Lit Furnace
tile.furnace.stone.active.desc=For melting, heating, and cooking blocks and items.
tile.furnace.blast.idle.name=Blast Furnace
tile.furnace.blast.idle.desc=Burns hotter than a normal furnace.
tile.furnace.blast.active.name=Lit Blast Furnace
tile.furnace.blast.active.desc=Burns hotter than a normal furnace.

tile.trommel.idle.name=Trommel
tile.trommel.idle.desc=A machine that separates dirt from other useful items.
tile.trommel.active.name=Lit Trommel
tile.trommel.active.desc=A machine that separates dirt from other useful items.

tile.chest.planks.oak.name=Wooden Chest
tile.chest.planks.oak.desc=A place to store your items.
tile.chest.planks.oak.painted.name=Mystery Wooden Chest
tile.chest.planks.oak.painted.desc=How did you get this?!
tile.chest.planks.oak.painted.black.name=Black Wooden Chest
tile.chest.planks.oak.painted.black.desc=A place to store your items.
tile.chest.planks.oak.painted.red.name=Red Wooden Chest
tile.chest.planks.oak.painted.red.desc=A place to store your items.
tile.chest.planks.oak.painted.green.name=Green Wooden Chest
tile.chest.planks.oak.painted.green.desc=A place to store your items.
tile.chest.planks.oak.painted.brown.name=Brown Wooden Chest
tile.chest.planks.oak.painted.brown.desc=A place to store your items.
tile.chest.planks.oak.painted.blue.name=Blue Wooden Chest
tile.chest.planks.oak.painted.blue.desc=A place to store your items.
tile.chest.planks.oak.painted.purple.name=Purple Wooden Chest
tile.chest.planks.oak.painted.purple.desc=A place to store your items.
tile.chest.planks.oak.painted.cyan.name=Cyan Wooden Chest
tile.chest.planks.oak.painted.cyan.desc=A place to store your items.
tile.chest.planks.oak.painted.silver.name=Light Gray Wooden Chest
tile.chest.planks.oak.painted.silver.desc=A place to store your items.
tile.chest.planks.oak.painted.gray.name=Gray Wooden Chest
tile.chest.planks.oak.painted.gray.desc=A place to store your items.
tile.chest.planks.oak.painted.pink.name=Pink Wooden Chest
tile.chest.planks.oak.painted.pink.desc=A place to store your items.
tile.chest.planks.oak.painted.lime.name=Lime Wooden Chest
tile.chest.planks.oak.painted.lime.desc=A place to store your items.
tile.chest.planks.oak.painted.yellow.name=Yellow Wooden Chest
tile.chest.planks.oak.painted.yellow.desc=A place to store your items.
tile.chest.planks.oak.painted.lightblue.name=Light Blue Wooden Chest
tile.chest.planks.oak.painted.lightblue.desc=A place to store your items.
tile.chest.planks.oak.painted.magenta.name=Magenta Wooden Chest
tile.chest.planks.oak.painted.magenta.desc=A place to store your items.
tile.chest.planks.oak.painted.orange.name=Orange Wooden Chest
tile.chest.planks.oak.painted.orange.desc=A place to store your items.
tile.chest.planks.oak.painted.white.name=White Wooden Chest
tile.chest.planks.oak.painted.white.desc=A place to store your items.
tile.chest.legacy.name=Legacy Chest

tile.crops.wheat.name=Wheat Crops
tile.crops.wheat.desc=Wheat, plucked from the ground.
tile.crops.pumpkin.name=Pumpkin Crops
tile.crops.pumpkin.desc=A ripening pumpkin, plucked from the ground.

tile.farmland.dirt.name=Farmland
tile.farmland.dirt.desc=Tilled soil for growing crops.

tile.sign.post.planks.oak.name=Oak Signpost
tile.sign.post.planks.oak.desc=A free-standing oak sign.
tile.sign.wall.planks.oak.name=Oak Wall Sign
tile.sign.wall.planks.oak.desc=An oak sign placed on a wall.

tile.layer.snow.name=Snow Layer
tile.layer.snow.desc=A flat layer of snow.
tile.layer.leaves.oak.name=Leaf Pile
tile.layer.leaves.oak.desc=A pile of leaves.
tile.layer.slate.name=Slate Layer
tile.layer.slate.desc=A flat sheet of slate.

tile.ice.name=Ice
tile.ice.desc=Slippery frozen water.
tile.ice.perma.name=Perma-Ice
tile.ice.perma.desc=Ice imbued with the essence of stone.

tile.block.snow.name=Block of Snow
tile.block.snow.desc=Lots of snow compacted into a block.

tile.cactus.name=Cactus
tile.cactus.desc=A spiky plant that grows in the desert.

tile.block.clay.name=Block of Clay
tile.block.clay.desc=A block of compacted clay.

tile.sugarcane.name=Sugarcane
tile.sugarcane.desc=Not as sweet as you.

tile.block.sugarcane.name=Block of Sugarcane
tile.block.sugarcane.desc=One very big sugar cube.
tile.block.sugarcane.baked.name=Baked Block of Sugarcane
tile.block.sugarcane.baked.desc=Smells absolutely delicious.

tile.jukebox.name=Jukebox
tile.jukebox.desc=Plays your favourite tunes, assuming you have the right record.

tile.pumpkin.name=Pumpkin
tile.pumpkin.desc=An orange squash that grows in the wild.
tile.pumpkin.carved.idle.name=Carved Pumpkin
tile.pumpkin.carved.idle.desc=An orange squash with a spooky face.
tile.pumpkin.carved.active.name=Jack 'o' Lantern
tile.pumpkin.carved.active.desc=An orange squash with a spooky face, lit by a torch.
tile.pumpkin.redstone.name=Redstone Jack 'o' Lantern
tile.pumpkin.redstone.desc=An orange squash with a spooky face, lit by a redstone torch.

tile.cobble.netherrack.name=Cobbled Netherrack
tile.cobble.netherrack.desc=Dark red rock that burns forever.
tile.cobble.netherrack.igneous.name=Igneous Cobbled Netherrack
tile.cobble.netherrack.igneous.desc=Extreme heat has made this rock glow from inside.
tile.cobble.netherrack.mossy.name=Mossy Cobbled Netherrack
tile.cobble.netherrack.mossy.desc=Cobbled netherrack, covered in something like moss.
tile.netherrack.name=Netherrack
tile.netherrack.desc=Dark red rock, smoothed by heat and time.
tile.brick.netherrack.name=Netherrack Bricks
tile.brick.netherrack.desc=Stacked bricks of netherrack.
tile.slab.netherrack.carved.name=Polished Netherrack Slab
tile.slab.netherrack.carved.desc=A slab of polished netherrack.
tile.slab.cobble.netherrack.name=Cobbled Netherrack Slab
tile.slab.cobble.netherrack.desc=A slab of cobbled netherrack.
tile.slab.brick.netherrack.name=Netherrack Brick Slab
tile.slab.brick.netherrack.desc=A slab of netherrack bricks.
tile.stairs.cobble.netherrack.name=Cobbled Netherrack Stairs
tile.stairs.cobble.netherrack.desc=Cobbled netherrack block used for rapid vertical movement.
tile.stairs.brick.netherrack.name=Netherrack Brick Stairs
tile.stairs.brick.netherrack.desc=Netherrack brick block used for rapid vertical movement.

tile.soulsand.name=Soul Sand
tile.soulsand.desc=Squishy brown sand that's tough to walk through.
tile.soulschist.name=Soul Schist
tile.soulschist.desc=A hideous medley of ancient bones, fused through heat, pressure, and time.

tile.glowstone.name=Block of Glowstone
tile.glowstone.desc=Constantly emits a strong yellowish light.

tile.portal.nether.name=Nether Portal
tile.portal.nether.desc=A portal to the Nether.
tile.portal.paradise.name=Paradise Portal
tile.portal.paradise.desc=A portal to Paradise.

tile.cake.name=Cake
tile.cake.desc=I just can't cake it any more.
tile.pumpkin_pie.name=Pumpkin Pie
tile.pumpkin_pie.desc=I don't wanna pie!

tile.lamp.idle.name=Lamp
tile.lamp.idle.desc=How did you get this?!
tile.lamp.idle.black.name=Black Lamp
tile.lamp.idle.black.desc=A redstone lamp that can emit light. Tinted black.
tile.lamp.idle.red.name=Red Lamp
tile.lamp.idle.red.desc=A redstone lamp that can emit light. Tinted red.
tile.lamp.idle.green.name=Green Lamp
tile.lamp.idle.green.desc=A redstone lamp that can emit light. Tinted green.
tile.lamp.idle.brown.name=Brown Lamp
tile.lamp.idle.brown.desc=A redstone lamp that can emit light. Tinted brown.
tile.lamp.idle.blue.name=Blue Lamp
tile.lamp.idle.blue.desc=A redstone lamp that can emit light. Tinted blue.
tile.lamp.idle.purple.name=Purple Lamp
tile.lamp.idle.purple.desc=A redstone lamp that can emit light. Tinted purple.
tile.lamp.idle.cyan.name=Cyan Lamp
tile.lamp.idle.cyan.desc=A redstone lamp that can emit light. Tinted cyan.
tile.lamp.idle.silver.name=Light Gray Lamp
tile.lamp.idle.silver.desc=A redstone lamp that can emit light. Tinted light gray.
tile.lamp.idle.gray.name=Gray Lamp
tile.lamp.idle.gray.desc=A redstone lamp that can emit light. Tinted gray.
tile.lamp.idle.pink.name=Pink Lamp
tile.lamp.idle.pink.desc=A redstone lamp that can emit light. Tinted pink.
tile.lamp.idle.lime.name=Lime Lamp
tile.lamp.idle.lime.desc=A redstone lamp that can emit light. Tinted lime.
tile.lamp.idle.yellow.name=Yellow Lamp
tile.lamp.idle.yellow.desc=A redstone lamp that can emit light. Tinted yellow.
tile.lamp.idle.lightblue.name=Light Blue Lamp
tile.lamp.idle.lightblue.desc=A redstone lamp that can emit light. Tinted light blue.
tile.lamp.idle.magenta.name=Magenta Lamp
tile.lamp.idle.magenta.desc=A redstone lamp that can emit light. Tinted magenta.
tile.lamp.idle.orange.name=Orange Lamp
tile.lamp.idle.orange.desc=A redstone lamp that can emit light. Tinted orange.
tile.lamp.idle.white.name=White Lamp
tile.lamp.idle.white.desc=A redstone lamp that can emit light.

tile.lamp.active.name=Lit Lamp
tile.lamp.active.desc=How did you get this?!
tile.lamp.active.black.name=Lit Black Lamp
tile.lamp.active.black.desc=A redstone lamp that emits light. Tinted black.
tile.lamp.active.red.name=Lit Red Lamp
tile.lamp.active.red.desc=A redstone lamp that emits light. Tinted red.
tile.lamp.active.green.name=Lit Green Lamp
tile.lamp.active.green.desc=A redstone lamp that emits light. Tinted green.
tile.lamp.active.brown.name=Lit Brown Lamp
tile.lamp.active.brown.desc=A redstone lamp that emits light. Tinted brown.
tile.lamp.active.blue.name=Lit Blue Lamp
tile.lamp.active.blue.desc=A redstone lamp that emits light. Tinted blue.
tile.lamp.active.purple.name=Lit Purple Lamp
tile.lamp.active.purple.desc=A redstone lamp that emits light. Tinted purple.
tile.lamp.active.cyan.name=Lit Cyan Lamp
tile.lamp.active.cyan.desc=A redstone lamp that emits light. Tinted cyan.
tile.lamp.active.silver.name=Lit Light Gray Lamp
tile.lamp.active.silver.desc=A redstone lamp that emits light. Tinted light gray.
tile.lamp.active.gray.name=Lit Gray Lamp
tile.lamp.active.gray.desc=A redstone lamp that emits light. Tinted gray.
tile.lamp.active.pink.name=Lit Pink Lamp
tile.lamp.active.pink.desc=A redstone lamp that emits light. Tinted pink.
tile.lamp.active.lime.name=Lit Lime Lamp
tile.lamp.active.lime.desc=A redstone lamp that emits light. Tinted lime.
tile.lamp.active.yellow.name=Yellow Lamp
tile.lamp.active.yellow.desc=A redstone lamp that emits light. Tinted yellow.
tile.lamp.active.lightblue.name=Light Blue Lamp
tile.lamp.active.lightblue.desc=A redstone lamp that emits light. Tinted light blue.
tile.lamp.active.magenta.name=Magenta Lamp
tile.lamp.active.magenta.desc=A redstone lamp that emits light. Tinted magenta.
tile.lamp.active.orange.name=Orange Lamp
tile.lamp.active.orange.desc=A redstone lamp that emits light. Tinted orange.
tile.lamp.active.white.name=White Lamp
tile.lamp.active.white.desc=A redstone lamp that emits light.

tile.stone.polished.name=Polished Stone
tile.stone.polished.desc=A polished block of stone.
tile.granite.polished.name=Polished Granite
tile.granite.polished.desc=A polished block of granite.
tile.limestone.polished.name=Polished Limestone
tile.limestone.polished.desc=A polished block of limestone.
tile.basalt.polished.name=Polished Basalt
tile.basalt.polished.desc=A polished block of basalt.
tile.slate.polished.name=Polished Slate
tile.slate.polished.desc=A polished block of slate.
tile.permafrost.polished.name=Polished Permafrost
tile.permafrost.polished.desc=A polished block of permafrost.
tile.netherrack.polished.name=Polished Netherrack
tile.netherrack.polished.desc=A polished block of netherrack.

tile.candle.wax.soul.name=Soul Wax Candle
tile.candle.wax.soul.desc=A waxy brown candle that glows with an unnatural light.

tile.basket.name=Basket
tile.basket.desc=A wicker container for holding items.

tile.overlay.pebbles.name=Pebbles
tile.overlay.pebbles.desc=A cluster of pebbles.

tile.fence.chainlink.name=Chainlink Fence
tile.fence.chainlink.desc=A fence made of interconnected chain links. Can be climbed!
tile.fence.paper_wall.name=Paper Wall Fence
tile.fence.paper_wall.desc=A fence made of delicate paper. Be careful!
tile.fence.steel.name=Steel Fence
tile.fence.steel.desc=A fence made of tough steel. Intimidating!

tile.lantern.firefly.green.name=Green Firefly Lantern
tile.lantern.firefly.green.desc=A glass jar containing a swarm of green fireflies.
tile.lantern.firefly.orange.name=Orange Firefly Lantern
tile.lantern.firefly.orange.desc=A glass jar containing a swarm of orange fireflies.
tile.lantern.firefly.blue.name=Blue Firefly Lantern
tile.lantern.firefly.blue.desc=A glass jar containing a swarm of blue fireflies.
tile.lantern.firefly.red.name=Red Firefly Lantern
tile.lantern.firefly.red.desc=A glass jar containing a swarm of red fireflies.

tile.flag.name=Flag
tile.flag.desc=A flag to mark your territory.

tile.paper_wall.name=Paper Wall
tile.paper_wall.desc=A wall made of delicate paper. Be careful!

tile.trapdoor.planks.oak.painted.name=Painted Trapdoor
tile.trapdoor.planks.oak.painted.desc=How did you get this?!
tile.trapdoor.planks.oak.painted.black.name=Black Oak Trapdoor
tile.trapdoor.planks.oak.painted.black.desc=Like a door, but flat and painted black.
tile.trapdoor.planks.oak.painted.red.name=Red Oak Trapdoor
tile.trapdoor.planks.oak.painted.red.desc=Like a door, but flat and painted red.
tile.trapdoor.planks.oak.painted.green.name=Green Oak Trapdoor
tile.trapdoor.planks.oak.painted.green.desc=Like a door, but flat and painted green.
tile.trapdoor.planks.oak.painted.brown.name=Brown Oak Trapdoor
tile.trapdoor.planks.oak.painted.brown.desc=Like a door, but flat and painted brown.
tile.trapdoor.planks.oak.painted.blue.name=Blue Oak Trapdoor
tile.trapdoor.planks.oak.painted.blue.desc=Like a door, but flat and painted blue.
tile.trapdoor.planks.oak.painted.purple.name=Purple Oak Trapdoor
tile.trapdoor.planks.oak.painted.purple.desc=Like a door, but flat and painted purple.
tile.trapdoor.planks.oak.painted.cyan.name=Cyan Oak Trapdoor
tile.trapdoor.planks.oak.painted.cyan.desc=Like a door, but flat and painted cyan.
tile.trapdoor.planks.oak.painted.silver.name=Light Gray Oak Trapdoor
tile.trapdoor.planks.oak.painted.silver.desc=Like a door, but flat and painted light gray.
tile.trapdoor.planks.oak.painted.gray.name=Gray Oak Trapdoor
tile.trapdoor.planks.oak.painted.gray.desc=Like a door, but flat and painted gray.
tile.trapdoor.planks.oak.painted.pink.name=Pink Oak Trapdoor
tile.trapdoor.planks.oak.painted.pink.desc=Like a door, but flat and painted pink.
tile.trapdoor.planks.oak.painted.lime.name=Lime Oak Trapdoor
tile.trapdoor.planks.oak.painted.lime.desc=Like a door, but flat and painted lime.
tile.trapdoor.planks.oak.painted.yellow.name=Yellow Oak Trapdoor
tile.trapdoor.planks.oak.painted.yellow.desc=Like a door, but flat and painted yellow.
tile.trapdoor.planks.oak.painted.lightblue.name=Light Blue Oak Trapdoor
tile.trapdoor.planks.oak.painted.lightblue.desc=Like a door, but flat and painted light blue.
tile.trapdoor.planks.oak.painted.magenta.name=Magenta Oak Trapdoor
tile.trapdoor.planks.oak.painted.magenta.desc=Like a door, but flat and painted magenta.
tile.trapdoor.planks.oak.painted.orange.name=Orange Oak Trapdoor
tile.trapdoor.planks.oak.painted.orange.desc=Like a door, but flat and painted orange.
tile.trapdoor.planks.oak.painted.white.name=White Oak Trapdoor
tile.trapdoor.planks.oak.painted.white.desc=Like a door, but flat and painted white.

tile.door.planks.oak.painted.bottom.name=Bottom Painted Wooden Door
tile.door.planks.oak.painted.bottom.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.black.name=Black Bottom Wooden Door
tile.door.planks.oak.painted.bottom.black.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.red.name=Red Bottom Wooden Door
tile.door.planks.oak.painted.bottom.red.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.green.name=Green Bottom Wooden Door
tile.door.planks.oak.painted.bottom.green.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.brown.name=Brown Bottom Wooden Door
tile.door.planks.oak.painted.bottom.brown.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.blue.name=Blue Bottom Wooden Door
tile.door.planks.oak.painted.bottom.blue.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.purple.name=Purple Bottom Wooden Door
tile.door.planks.oak.painted.bottom.purple.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.cyan.name=Cyan Bottom Wooden Door
tile.door.planks.oak.painted.bottom.cyan.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.silver.name=Light Gray Bottom Wooden Door
tile.door.planks.oak.painted.bottom.silver.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.gray.name=Gray Bottom Wooden Door
tile.door.planks.oak.painted.bottom.gray.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.pink.name=Pink Bottom Wooden Door
tile.door.planks.oak.painted.bottom.pink.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.lime.name=Lime Bottom Wooden Door
tile.door.planks.oak.painted.bottom.lime.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.yellow.name=Yellow Bottom Wooden Door
tile.door.planks.oak.painted.bottom.yellow.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.lightblue.name=Light Blue Bottom Wooden Door
tile.door.planks.oak.painted.bottom.lightblue.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.magenta.name=Magenta Bottom Wooden Door
tile.door.planks.oak.painted.bottom.magenta.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.orange.name=Orange Bottom Wooden Door
tile.door.planks.oak.painted.bottom.orange.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.white.name=White Bottom Wooden Door
tile.door.planks.oak.painted.bottom.white.desc=How did you get this?!

tile.door.planks.oak.painted.top.name=Top Painted Wooden Door
tile.door.planks.oak.painted.top.desc=How did you get this?!
tile.door.planks.oak.painted.top.black.name=Black Top Wooden Door
tile.door.planks.oak.painted.top.black.desc=How did you get this?!
tile.door.planks.oak.painted.top.red.name=Red Top Wooden Door
tile.door.planks.oak.painted.top.red.desc=How did you get this?!
tile.door.planks.oak.painted.top.green.name=Green Top Wooden Door
tile.door.planks.oak.painted.top.green.desc=How did you get this?!
tile.door.planks.oak.painted.top.brown.name=Brown Top Wooden Door
tile.door.planks.oak.painted.top.brown.desc=How did you get this?!
tile.door.planks.oak.painted.top.blue.name=Blue Top Wooden Door
tile.door.planks.oak.painted.top.blue.desc=How did you get this?!
tile.door.planks.oak.painted.top.purple.name=Purple Top Wooden Door
tile.door.planks.oak.painted.top.purple.desc=How did you get this?!
tile.door.planks.oak.painted.top.cyan.name=Cyan Top Wooden Door
tile.door.planks.oak.painted.top.cyan.desc=How did you get this?!
tile.door.planks.oak.painted.top.silver.name=Light Gray Top Wooden Door
tile.door.planks.oak.painted.top.silver.desc=How did you get this?!
tile.door.planks.oak.painted.top.gray.name=Gray Top Wooden Door
tile.door.planks.oak.painted.top.gray.desc=How did you get this?!
tile.door.planks.oak.painted.top.pink.name=Pink Top Wooden Door
tile.door.planks.oak.painted.top.pink.desc=How did you get this?!
tile.door.planks.oak.painted.top.lime.name=Lime Top Wooden Door
tile.door.planks.oak.painted.top.lime.desc=How did you get this?!
tile.door.planks.oak.painted.top.yellow.name=Yellow Top Wooden Door
tile.door.planks.oak.painted.top.yellow.desc=How did you get this?!
tile.door.planks.oak.painted.top.lightblue.name=Light Blue Top Wooden Door
tile.door.planks.oak.painted.top.lightblue.desc=How did you get this?!
tile.door.planks.oak.painted.top.magenta.name=Magenta Top Wooden Door
tile.door.planks.oak.painted.top.magenta.desc=How did you get this?!
tile.door.planks.oak.painted.top.orange.name=Orange Top Wooden Door
tile.door.planks.oak.painted.top.orange.desc=How did you get this?!
tile.door.planks.oak.painted.top.white.name=White Top Wooden Door
tile.door.planks.oak.painted.top.white.desc=How did you get this?!

tile.door.glass.top.name=Top Glass Door
tile.door.glass.top.desc=You shouldn't be seeing this.
tile.door.glass.bottom.name=Bottom Glass Door
tile.door.glass.bottom.desc=And that's not just because it's glass.

tile.door.steel.top.name=Top Steel Door
tile.door.steel.top.desc=Don't take this without asking.
tile.door.steel.bottom.name=Bottom Steel Door
tile.door.steel.bottom.desc=Steeler, no steeling!

tile.trapdoor.steel.name=Steel Trapdoor
tile.trapdoor.steel.desc=Like a door, but flat and made of durable steel.

tile.glass.steel.name=Reinforced Glass
tile.glass.steel.desc=Like glass, but without the fragility.

tile.rope.name=Rope
tile.rope.desc=Rope, rope, rope your boat.
\ No newline at end of file
+tile.stone.name=Stone
tile.stone.desc=A block of solid stone.
tile.basalt.name=Basalt
tile.basalt.desc=A block of solid basalt.
tile.limestone.name=Limestone
tile.limestone.desc=A block of solid limestone.
tile.granite.name=Granite
tile.granite.desc=A block of solid granite.
tile.marble.name=Marble
tile.marble.desc=A block of solid marble.
tile.slate.name=Slate
tile.slate.desc=A block of solid slate.
tile.permafrost.name=Permafrost
tile.permafrost.desc=A block of frozen stone.

tile.cobble.stone.name=Cobblestone
tile.cobble.stone.desc=Stone, smashed apart and reconstituted.
tile.cobble.stone.mossy.name=Mossy Cobblestone
tile.cobble.stone.mossy.desc=Cobblestone with added greenery.
tile.cobble.basalt.name=Cobbled Basalt
tile.cobble.basalt.desc=Basalt, smashed apart and reconstituted.
tile.cobble.limestone.name=Cobbled Limestone
tile.cobble.limestone.desc=Limestone, smashed apart and reconstituted.
tile.cobble.granite.name=Cobbled Granite
tile.cobble.granite.desc=Granite, smashed apart and reconstituted.
tile.cobble.permafrost.name=Cobbled Permafrost
tile.cobble.permafrost.desc=Permafrost, smashed apart and reconstituted.

tile.pillar.marble.name=Marble Pillar
tile.pillar.marble.desc=A block of marble engraved into a pillar.
tile.capstone.marble.name=Marble Capstone
tile.capstone.marble.desc=A pillar capstone made of solid marble.

tile.sandstone.name=Sandstone
tile.sandstone.desc=Compacted sand.

tile.stone.carved.name=Carved Stone
tile.stone.carved.desc=Polished Stone with lines hewn through the middle.
tile.granite.carved.name=Carved Granite
tile.granite.carved.desc=Polished Granite with lines hewn through the middle.
tile.limestone.carved.name=Carved Limestone
tile.limestone.carved.desc=Polished Limestone with lines hewn through the middle.
tile.basalt.carved.name=Carved Basalt
tile.basalt.carved.desc=Polished Basalt with lines hewn through the middle.
tile.permafrost.carved.name=Carved Permafrost
tile.permafrost.carved.desc=Polished Permafrost with lines hewn through the middle.
tile.netherrack.carved.name=Carved Netherrack
tile.netherrack.carved.desc=Polished Netherrack with lines hewn through the middle.

tile.planks.oak.name=Wooden Planks
tile.planks.oak.desc=Processed tree insides.
tile.planks.oak.painted.name=Mystery Planks
tile.planks.oak.painted.desc=How did you get this?!
tile.planks.oak.painted.black.name=Black Wooden Planks
tile.planks.oak.painted.black.desc=Wooden planks, stained black.
tile.planks.oak.painted.red.name=Red Wooden Planks
tile.planks.oak.painted.red.desc=Wooden planks, stained red.
tile.planks.oak.painted.green.name=Green Wooden Planks
tile.planks.oak.painted.green.desc=Wooden planks, stained green.
tile.planks.oak.painted.brown.name=Brown Wooden Planks
tile.planks.oak.painted.brown.desc=Wooden planks, stained brown.
tile.planks.oak.painted.blue.name=Blue Wooden Planks
tile.planks.oak.painted.blue.desc=Wooden planks, stained blue.
tile.planks.oak.painted.purple.name=Purple Wooden Planks
tile.planks.oak.painted.purple.desc=Wooden planks, stained purple.
tile.planks.oak.painted.cyan.name=Cyan Wooden Planks
tile.planks.oak.painted.cyan.desc=Wooden planks, stained cyan.
tile.planks.oak.painted.silver.name=Light Gray Wooden Planks
tile.planks.oak.painted.silver.desc=Wooden planks, stained light gray.
tile.planks.oak.painted.gray.name=Gray Wooden Planks
tile.planks.oak.painted.gray.desc=Wooden planks, stained gray.
tile.planks.oak.painted.pink.name=Pink Wooden Planks
tile.planks.oak.painted.pink.desc=Wooden planks, stained pink.
tile.planks.oak.painted.lime.name=Lime Wooden Planks
tile.planks.oak.painted.lime.desc=Wooden planks, stained lime.
tile.planks.oak.painted.yellow.name=Yellow Wooden Planks
tile.planks.oak.painted.yellow.desc=Wooden planks, stained yellow.
tile.planks.oak.painted.lightblue.name=Light Blue Wooden Planks
tile.planks.oak.painted.lightblue.desc=Wooden planks, stained light blue.
tile.planks.oak.painted.magenta.name=Magenta Wooden Planks
tile.planks.oak.painted.magenta.desc=Wooden planks, stained magenta.
tile.planks.oak.painted.orange.name=Orange Wooden Planks
tile.planks.oak.painted.orange.desc=Wooden planks, stained orange.
tile.planks.oak.painted.white.name=White Wooden Planks
tile.planks.oak.painted.white.desc=Wooden planks, stained white.

tile.torch.coal.name=Torch
tile.torch.coal.desc=Helps light the way.

tile.ladder.oak.name=Oak Ladder
tile.ladder.oak.desc=For very rapid vertical movement.

tile.fence.planks.oak.name=Oak Fence
tile.fence.planks.oak.desc=Too tall to jump over.

tile.fence.planks.oak.painted.name=Mystery Wooden Fence
tile.fence.planks.oak.painted.desc=How did you get this?!
tile.fence.planks.oak.painted.black.name=Black Wooden Fence
tile.fence.planks.oak.painted.black.desc=A wooden fence, stained black.
tile.fence.planks.oak.painted.red.name=Red Wooden Fence
tile.fence.planks.oak.painted.red.desc=A wooden fence, stained red.
tile.fence.planks.oak.painted.green.name=Green Wooden Fence
tile.fence.planks.oak.painted.green.desc=A wooden fence, stained green.
tile.fence.planks.oak.painted.brown.name=Brown Wooden Fence
tile.fence.planks.oak.painted.brown.desc=A wooden fence, stained brown.
tile.fence.planks.oak.painted.blue.name=Blue Wooden Fence
tile.fence.planks.oak.painted.blue.desc=A wooden fence, stained blue.
tile.fence.planks.oak.painted.purple.name=Purple Wooden Fence
tile.fence.planks.oak.painted.purple.desc=A wooden fence, stained purple.
tile.fence.planks.oak.painted.cyan.name=Cyan Wooden Fence
tile.fence.planks.oak.painted.cyan.desc=A wooden fence, stained cyan.
tile.fence.planks.oak.painted.silver.name=Light Gray Wooden Fence
tile.fence.planks.oak.painted.silver.desc=A wooden fence, stained light gray.
tile.fence.planks.oak.painted.gray.name=Gray Wooden Fence
tile.fence.planks.oak.painted.gray.desc=A wooden fence, stained gray.
tile.fence.planks.oak.painted.pink.name=Pink Wooden Fence
tile.fence.planks.oak.painted.pink.desc=A wooden fence, stained pink.
tile.fence.planks.oak.painted.lime.name=Lime Wooden Fence
tile.fence.planks.oak.painted.lime.desc=A wooden fence, stained lime.
tile.fence.planks.oak.painted.yellow.name=Yellow Wooden Fence
tile.fence.planks.oak.painted.yellow.desc=A wooden fence, stained yellow.
tile.fence.planks.oak.painted.lightblue.name=Light Blue Wooden Fence
tile.fence.planks.oak.painted.lightblue.desc=A wooden fence, stained light blue.
tile.fence.planks.oak.painted.magenta.name=Magenta Wooden Fence
tile.fence.planks.oak.painted.magenta.desc=A wooden fence, stained magenta.
tile.fence.planks.oak.painted.orange.name=Orange Wooden Fence
tile.fence.planks.oak.painted.orange.desc=A wooden fence, stained orange.
tile.fence.planks.oak.painted.white.name=White Wooden Fence
tile.fence.planks.oak.painted.white.desc=A wooden fence, stained white.

tile.fencegate.planks.oak.name=Wooden Fence Gate
tile.fencegate.planks.oak.desc=Like a door but for fences.

tile.fencegate.planks.oak.painted.name=Mystery Wooden Fence Gate
tile.fencegate.planks.oak.painted.desc=How did you get this?!
tile.fencegate.planks.oak.painted.black.name=Black Wooden Fence Gate
tile.fencegate.planks.oak.painted.black.desc=A wooden fence gate, stained black.
tile.fencegate.planks.oak.painted.red.name=Red Wooden Fence Gate
tile.fencegate.planks.oak.painted.red.desc=A wooden fence gate, stained red.
tile.fencegate.planks.oak.painted.green.name=Green Wooden Fence Gate
tile.fencegate.planks.oak.painted.green.desc=A wooden fence gate, stained green.
tile.fencegate.planks.oak.painted.brown.name=Brown Wooden Fence Gate
tile.fencegate.planks.oak.painted.brown.desc=A wooden fence gate, stained brown.
tile.fencegate.planks.oak.painted.blue.name=Blue Wooden Fence Gate
tile.fencegate.planks.oak.painted.blue.desc=A wooden fence gate, stained blue.
tile.fencegate.planks.oak.painted.purple.name=Purple Wooden Fence Gate
tile.fencegate.planks.oak.painted.purple.desc=A wooden fence gate, stained purple.
tile.fencegate.planks.oak.painted.cyan.name=Cyan Wooden Fence Gate
tile.fencegate.planks.oak.painted.cyan.desc=A wooden fence gate, stained cyan.
tile.fencegate.planks.oak.painted.silver.name=Light Gray Wooden Fence Gate
tile.fencegate.planks.oak.painted.silver.desc=A wooden fence gate, stained light gray.
tile.fencegate.planks.oak.painted.gray.name=Gray Wooden Fence Gate
tile.fencegate.planks.oak.painted.gray.desc=A wooden fence gate, stained gray.
tile.fencegate.planks.oak.painted.pink.name=Pink Wooden Fence Gate
tile.fencegate.planks.oak.painted.pink.desc=A wooden fence gate, stained pink.
tile.fencegate.planks.oak.painted.lime.name=Lime Wooden Fence Gate
tile.fencegate.planks.oak.painted.lime.desc=A wooden fence gate, stained lime.
tile.fencegate.planks.oak.painted.yellow.name=Yellow Wooden Fence Gate
tile.fencegate.planks.oak.painted.yellow.desc=A wooden fence gate, stained yellow.
tile.fencegate.planks.oak.painted.lightblue.name=Light Blue Wooden Fence Gate
tile.fencegate.planks.oak.painted.lightblue.desc=A wooden fence gate, stained light blue.
tile.fencegate.planks.oak.painted.magenta.name=Magenta Wooden Fence Gate
tile.fencegate.planks.oak.painted.magenta.desc=A wooden fence gate, stained magenta.
tile.fencegate.planks.oak.painted.orange.name=Orange Wooden Fence Gate
tile.fencegate.planks.oak.painted.orange.desc=A wooden fence gate, stained orange.
tile.fencegate.planks.oak.painted.white.name=White Wooden Fence Gate
tile.fencegate.planks.oak.painted.white.desc=A wooden fence gate, stained white.

tile.bookshelf.planks.oak.name=Bookshelf
tile.bookshelf.planks.oak.desc=A repository of knowledge.

tile.wool.name=Wool
tile.wool.desc=How did you get this?!
tile.wool.black.name=Black Wool
tile.wool.black.desc=Sheep's wool, dyed black.
tile.wool.red.name=Red Wool
tile.wool.red.desc=Sheep's wool, dyed red.
tile.wool.green.name=Green Wool
tile.wool.green.desc=Sheep's wool, dyed green.
tile.wool.brown.name=Brown Wool
tile.wool.brown.desc=Sheep's wool, dyed brown.
tile.wool.blue.name=Blue Wool
tile.wool.blue.desc=Sheep's wool, dyed blue.
tile.wool.purple.name=Purple Wool
tile.wool.purple.desc=Sheep's wool, dyed purple.
tile.wool.cyan.name=Cyan Wool
tile.wool.cyan.desc=Sheep's wool, dyed cyan.
tile.wool.silver.name=Light Gray Wool
tile.wool.silver.desc=Sheep's wool, dyed light gray.
tile.wool.gray.name=Gray Wool
tile.wool.gray.desc=Sheep's wool, dyed gray.
tile.wool.pink.name=Pink Wool
tile.wool.pink.desc=Sheep's wool, dyed pink.
tile.wool.lime.name=Lime Wool
tile.wool.lime.desc=Sheep's wool, dyed lime.
tile.wool.yellow.name=Yellow Wool
tile.wool.yellow.desc=Sheep's wool, dyed yellow.
tile.wool.lightblue.name=Light Blue Wool
tile.wool.lightblue.desc=Sheep's wool, dyed light blue.
tile.wool.magenta.name=Magenta Wool
tile.wool.magenta.desc=Sheep's wool, dyed magenta.
tile.wool.orange.name=Orange Wool
tile.wool.orange.desc=Sheep's wool, dyed orange.
tile.wool.white.name=White Wool
tile.wool.white.desc=Sheep's wool, dyed white.

tile.brick.clay.name=Clay Bricks
tile.brick.clay.desc=Stacked bricks of baked clay.
tile.brick.stone.polished.name=Polished Stone Bricks
tile.brick.stone.polished.desc=Stacked bricks of polished stone.
tile.brick.stone.polished.mossy.name=Mossy Polished Stone Bricks
tile.brick.stone.polished.mossy.desc=Stacked bricks of polished stone with added greenery.
tile.brick.sandstone.name=Sandstone Bricks
tile.brick.sandstone.desc=Stacked bricks of sandstone.
tile.brick.gold.name=Gold Bricks
tile.brick.gold.desc=Stacked bricks of gold.
tile.brick.lapis.name=Lapis Lazuli Bricks
tile.brick.lapis.desc=Stacked bricks of lapis lazuli.
tile.brick.basalt.name=Basalt Bricks
tile.brick.basalt.desc=Stacked bricks of basalt.
tile.brick.limestone.name=Limestone Bricks
tile.brick.limestone.desc=Stacked bricks of limestone.
tile.brick.granite.name=Granite Bricks
tile.brick.granite.desc=Stacked bricks of granite.
tile.brick.marble.name=Marble Bricks
tile.brick.marble.desc=Stacked bricks of marble.
tile.brick.slate.name=Slate Bricks
tile.brick.slate.desc=Stacked bricks of slate.
tile.brick.stone.name=Stone Bricks
tile.brick.stone.desc=Stacked bricks of stone.
tile.brick.permafrost.name=Permafrost Bricks
tile.brick.permafrost.desc=Stacked bricks of permafrost.
tile.brick.iron.name=Iron Bricks
tile.brick.iron.desc=Stacked bricks of iron.
tile.brick.steel.name=Steel Bricks
tile.brick.steel.desc=Stacked bricks of steel.

tile.slab.planks.oak.name=Wooden Slab
tile.slab.planks.oak.desc=A slab of wooden planks.
tile.slab.cobble.stone.name=Cobblestone Slab
tile.slab.cobble.stone.desc=A slab of cobblestone.
tile.slab.sandstone.name=Sandstone Slab
tile.slab.sandstone.desc=A slab of sandstone.
tile.slab.brick.stone.polished.name=Polished Stone Brick Slab
tile.slab.brick.stone.polished.desc=A slab of polished stone bricks.
tile.slab.stone.carved.name=Polished Stone Slab
tile.slab.stone.carved.desc=A slab of polished stone.
tile.slab.brick.marble.name=Marble Brick Slab
tile.slab.brick.marble.desc=A slab of marble bricks.
tile.slab.brick.clay.name=Clay Brick Slab
tile.slab.brick.clay.desc=A slab of clay bricks.
tile.slab.capstone.marble.name=Marble Capstone Slab
tile.slab.capstone.marble.desc=Marble sculpted into a capstone.
tile.slab.cobble.basalt.name=Cobbled Basalt Slab
tile.slab.cobble.basalt.desc=A slab of cobbled basalt.
tile.slab.cobble.limestone.name=Cobbled Limestone Slab
tile.slab.cobble.limestone.desc=A slab of cobbled limestone.
tile.slab.cobble.granite.name=Cobbled Granite Slab
tile.slab.cobble.granite.desc=A slab of cobbled granite.
tile.slab.brick.basalt.name=Basalt Brick Slab
tile.slab.brick.basalt.desc=A slab of basalt bricks.
tile.slab.brick.limestone.name=Limestone Brick Slab
tile.slab.brick.limestone.desc=A slab of limestone bricks.
tile.slab.brick.granite.name=Granite Brick Slab
tile.slab.brick.granite.desc=A slab of granite bricks.
tile.slab.brick.slate.name=Slate Brick Slab
tile.slab.brick.slate.desc=A slab of slate bricks.
tile.slab.brick.stone.name=Stone Brick Slab
tile.slab.brick.stone.desc=A slab of stone bricks.
tile.slab.granite.carved.name=Polished Granite Slab
tile.slab.granite.carved.desc=A slab of polished granite.
tile.slab.limestone.carved.name=Polished Limestone Slab
tile.slab.limestone.carved.desc=A slab of polished limestone.
tile.slab.basalt.carved.name=Polished Basalt Slab
tile.slab.basalt.carved.desc=A slab of polished basalt.
tile.slab.permafrost.carved.name=Polished Permafrost Slab
tile.slab.permafrost.carved.desc=A slab of polished permafrost.

tile.slab.planks.oak.painted.name=Mystery Wooden Slab
tile.slab.planks.oak.painted.desc=How did you get this?!
tile.slab.planks.oak.painted.black.name=Black Wooden Slab
tile.slab.planks.oak.painted.black.desc=A slab of wooden planks, stained black.
tile.slab.planks.oak.painted.red.name=Red Wooden Slab
tile.slab.planks.oak.painted.red.desc=A slab of wooden planks, stained red.
tile.slab.planks.oak.painted.green.name=Green Wooden Slab
tile.slab.planks.oak.painted.green.desc=A slab of wooden planks, stained green.
tile.slab.planks.oak.painted.brown.name=Brown Wooden Slab
tile.slab.planks.oak.painted.brown.desc=A slab of wooden planks, stained brown.
tile.slab.planks.oak.painted.blue.name=Blue Wooden Slab
tile.slab.planks.oak.painted.blue.desc=A slab of wooden planks, stained blue.
tile.slab.planks.oak.painted.purple.name=Purple Wooden Slab
tile.slab.planks.oak.painted.purple.desc=A slab of wooden planks, stained purple.
tile.slab.planks.oak.painted.cyan.name=Cyan Wooden Slab
tile.slab.planks.oak.painted.cyan.desc=A slab of wooden planks, stained cyan.
tile.slab.planks.oak.painted.silver.name=Light Gray Wooden Slab
tile.slab.planks.oak.painted.silver.desc=A slab of wooden planks, stained light gray.
tile.slab.planks.oak.painted.gray.name=Gray Wooden Slab
tile.slab.planks.oak.painted.gray.desc=A slab of wooden planks, stained gray.
tile.slab.planks.oak.painted.pink.name=Pink Wooden Slab
tile.slab.planks.oak.painted.pink.desc=A slab of wooden planks, stained pink.
tile.slab.planks.oak.painted.lime.name=Lime Wooden Slab
tile.slab.planks.oak.painted.lime.desc=A slab of wooden planks, stained lime.
tile.slab.planks.oak.painted.yellow.name=Yellow Wooden Slab
tile.slab.planks.oak.painted.yellow.desc=A slab of wooden planks, stained yellow.
tile.slab.planks.oak.painted.lightblue.name=Light Blue Wooden Slab
tile.slab.planks.oak.painted.lightblue.desc=A slab of wooden planks, stained light blue.
tile.slab.planks.oak.painted.magenta.name=Magenta Wooden Slab
tile.slab.planks.oak.painted.magenta.desc=A slab of wooden planks, stained magenta.
tile.slab.planks.oak.painted.orange.name=Orange Wooden Slab
tile.slab.planks.oak.painted.orange.desc=A slab of wooden planks, stained orange.
tile.slab.planks.oak.painted.white.name=White Wooden Slab
tile.slab.planks.oak.painted.white.desc=A slab of wooden planks, stained white.
tile.slab.cobble.permafrost.name=Cobbled Permafrost Slab
tile.slab.cobble.permafrost.desc=A slab of cobbled permafrost.
tile.slab.brick.sandstone.name=Sandstone Brick Slab
tile.slab.brick.sandstone.desc=A slab of sandstone bricks.
tile.slab.brick.permafrost.name=Permafrost Brick Slab
tile.slab.brick.permafrost.desc=A slab of permafrost bricks.

tile.stairs.planks.oak.name=Wooden Stairs
tile.stairs.planks.oak.desc=Wooden block used for rapid vertical movement.
tile.stairs.cobble.stone.name=Cobblestone Stairs
tile.stairs.cobble.stone.desc=Cobblestone block used for rapid vertical movement.
tile.stairs.brick.stone.polished.name=Polished Stone Brick Stairs
tile.stairs.brick.stone.polished.desc=Polished stone brick block used for rapid vertical movement.
tile.stairs.brick.marble.name=Marble Brick Stairs
tile.stairs.brick.marble.desc=Marble brick block used for rapid vertical movement.
tile.stairs.cobble.basalt.name=Cobbled Basalt Stairs
tile.stairs.cobble.basalt.desc=Cobbled basalt block used for rapid vertical movement.
tile.stairs.cobble.limestone.name=Cobbled Limestone Stairs
tile.stairs.cobble.limestone.desc=Cobbled limestone block used for rapid vertical movement.
tile.stairs.cobble.granite.name=Cobbled Granite Stairs
tile.stairs.cobble.granite.desc=Cobbled granite block used for rapid vertical movement.
tile.stairs.brick.basalt.name=Basalt Brick Stairs
tile.stairs.brick.basalt.desc=Basalt brick block used for rapid vertical movement.
tile.stairs.brick.limestone.name=Limestone Brick Stairs
tile.stairs.brick.limestone.desc=Limestone brick block used for rapid vertical movement.
tile.stairs.brick.granite.name=Granite Brick Stairs
tile.stairs.brick.granite.desc=Granite brick block used for rapid vertical movement.
tile.stairs.brick.clay.name=Clay Brick Stairs
tile.stairs.brick.clay.desc=Clay brick block used for rapid vertical movement.
tile.stairs.brick.slate.name=Slate Brick Stairs
tile.stairs.brick.slate.desc=Slate brick block used for rapid vertical movement.
tile.stairs.brick.stone.name=Stone Brick Stairs
tile.stairs.brick.stone.desc=Stone brick block used for rapid vertical movement.
tile.stairs.sandstone.name=Sandstone Stairs
tile.stairs.sandstone.desc=Sandstone block used for rapid vertical movement.
tile.stairs.cobble.permafrost.name=Cobbled Permafrost Stairs
tile.stairs.cobble.permafrost.desc=Cobbled permafrost block used for rapid vertical movement.
tile.stairs.brick.sandstone.name=Sandstone Brick Stairs
tile.stairs.brick.sandstone.desc=Sandstone brick block used for rapid vertical movement.
tile.stairs.brick.permafrost.name=Permafrost Brick Stairs
tile.stairs.brick.permafrost.desc=Permafrost brick block used for rapid vertical movement.

tile.stairs.planks.oak.painted.name=Mystery Wooden Stairs
tile.stairs.planks.oak.painted.desc=How did you get this?!
tile.stairs.planks.oak.painted.black.name=Black Wooden Stairs
tile.stairs.planks.oak.painted.black.desc=Wooden steps, stained black.
tile.stairs.planks.oak.painted.red.name=Red Wooden Stairs
tile.stairs.planks.oak.painted.red.desc=Wooden steps, stained red.
tile.stairs.planks.oak.painted.green.name=Green Wooden Stairs
tile.stairs.planks.oak.painted.green.desc=Wooden steps, stained green.
tile.stairs.planks.oak.painted.brown.name=Brown Wooden Stairs
tile.stairs.planks.oak.painted.brown.desc=Wooden steps, stained brown.
tile.stairs.planks.oak.painted.blue.name=Blue Wooden Stairs
tile.stairs.planks.oak.painted.blue.desc=Wooden steps, stained blue.
tile.stairs.planks.oak.painted.purple.name=Purple Wooden Stairs
tile.stairs.planks.oak.painted.purple.desc=Wooden steps, stained purple.
tile.stairs.planks.oak.painted.cyan.name=Cyan Wooden Stairs
tile.stairs.planks.oak.painted.cyan.desc=Wooden steps, stained cyan.
tile.stairs.planks.oak.painted.silver.name=Light Gray Wooden Stairs
tile.stairs.planks.oak.painted.silver.desc=Wooden steps, stained light gray.
tile.stairs.planks.oak.painted.gray.name=Gray Wooden Stairs
tile.stairs.planks.oak.painted.gray.desc=Wooden steps, stained gray.
tile.stairs.planks.oak.painted.pink.name=Pink Wooden Stairs
tile.stairs.planks.oak.painted.pink.desc=Wooden steps, stained pink.
tile.stairs.planks.oak.painted.lime.name=Lime Wooden Stairs
tile.stairs.planks.oak.painted.lime.desc=Wooden steps, stained lime.
tile.stairs.planks.oak.painted.yellow.name=Yellow Wooden Stairs
tile.stairs.planks.oak.painted.yellow.desc=Wooden steps, stained yellow.
tile.stairs.planks.oak.painted.lightblue.name=Light Blue Wooden Stairs
tile.stairs.planks.oak.painted.lightblue.desc=Wooden steps, stained light blue.
tile.stairs.planks.oak.painted.magenta.name=Magenta Wooden Stairs
tile.stairs.planks.oak.painted.magenta.desc=Wooden steps, stained magenta.
tile.stairs.planks.oak.painted.orange.name=Orange Wooden Stairs
tile.stairs.planks.oak.painted.orange.desc=Wooden steps, stained orange.
tile.stairs.planks.oak.painted.white.name=White Wooden Stairs
tile.stairs.planks.oak.painted.white.desc=Wooden steps, stained white.

tile.obsidian.name=Obsidian
tile.obsidian.desc=Rapidly cooled volcanic rock.

tile.glass.name=Glass
tile.glass.desc=Sand heated until it becomes translucent.
tile.glass.tinted.name=Tinted Glass
tile.glass.tinted.desc=Darkened glass that blocks light.

tile.grass.name=Grass
tile.grass.desc=Crisp, crunchy grass.
tile.grass.retro.name=Retro Grass
tile.grass.retro.desc=Crisp, crunchy grass. Smells old.
tile.grass.scorched.name=Scorched Grass
tile.grass.scorched.desc=Grass that has baked in the sun.

tile.path.dirt.name=Dirt Path
tile.path.dirt.desc=Dirt worn down by frequent travelling.

tile.dirt.name=Dirt
tile.dirt.desc=Crumbly brown dirt.
tile.dirt.scorched.name=Scorched Dirt
tile.dirt.scorched.desc=Dirt that has baked in the sun.
tile.dirt.scorched.rich.name=Rich Scorched Dirt
tile.dirt.scorched.rich.desc=Dirt that has baked in the sun, searing in minerals.

tile.mud.name=Mud
tile.mud.desc=Mud sodden to its core.
tile.mud.baked.name=Baked Mud
tile.mud.baked.desc=Mud that's been dried out and cracked.

tile.sponge.dry.name=Sponge
tile.sponge.dry.desc=A dry sponge, good for soaking up water.
tile.sponge.wet.name=Wet Sponge
tile.sponge.wet.desc=A sponge full of water.
tile.pumice.dry.name=Pumice
tile.pumice.dry.desc=A dry porous volcanic rock, good for soaking up lava.
tile.pumice.wet.name=Molten Pumice
tile.pumice.wet.desc=Rock filled with lava.

tile.moss.stone.name=Mossy Stone
tile.moss.stone.desc=Moss covering a block of stone.
tile.moss.basalt.name=Mossy Basalt
tile.moss.basalt.desc=Moss covering a block of basalt.
tile.moss.limestone.name=Mossy Limestone
tile.moss.limestone.desc=Moss covering a block of limestone.
tile.moss.granite.name=Mossy Granite
tile.moss.granite.desc=Moss covering a block of granite.

tile.sand.name=Sand
tile.sand.desc=Gets everywhere.
tile.gravel.name=Gravel
tile.gravel.desc=A loose collection of pebbles.

tile.bedrock.name=Bedrock
tile.bedrock.desc=The toughest substance known to man.
tile.boneshale.name=Bone Shale
tile.boneshale.desc=An incredibly tough white rock torn from the deepest depths.

tile.fluid.water.flowing.name=Flowing Water
tile.fluid.water.flowing.desc=Water that flows when placed.
tile.fluid.water.still.name=Still Water
tile.fluid.water.still.desc=Water that does not flow when placed.
tile.fluid.lava.flowing.name=Flowing Lava
tile.fluid.lava.flowing.desc=Lava that flows when placed.
tile.fluid.lava.still.name=Still Lava
tile.fluid.lava.still.desc=Lava that does not flow when placed.

tile.log.oak.name=Oak Log
tile.log.oak.desc=A log from an oak tree.
tile.log.pine.name=Pine Log
tile.log.pine.desc=A log from a pine tree.
tile.log.birch.name=Birch Log
tile.log.birch.desc=A log from a birch tree.
tile.log.cherry.name=Cherry Log
tile.log.cherry.desc=A log from a cherry tree.
tile.log.eucalyptus.name=Eucalyptus Log
tile.log.eucalyptus.desc=A log from a eucalyptus tree.
tile.log.oak.mossy.name=Mossy Oak Log
tile.log.oak.mossy.desc=A log from a mossy oak tree.
tile.log.thorn.name=Thorn Log
tile.log.thorn.desc=A log from a thorn tree.
tile.log.palm.name=Palm Log
tile.log.palm.desc=A log from a palm tree.

tile.leaves.oak.name=Oak Leaves
tile.leaves.oak.desc=Leaves from an oak tree.
tile.leaves.pine.name=Pine Leaves
tile.leaves.pine.desc=Leaves from a pine tree.
tile.leaves.birch.name=Birch Leaves
tile.leaves.birch.desc=Leaves from a birch tree.
tile.leaves.cherry.name=Cherry Leaves
tile.leaves.cherry.desc=Leaves from a cherry tree.
tile.leaves.eucalyptus.name=Eucalyptus Leaves
tile.leaves.eucalyptus.desc=Leaves from a eucalyptus tree.
tile.leaves.oak.retro.name=Retro Leaves
tile.leaves.oak.retro.desc=Leaves from long ago.
tile.leaves.shrub.name=Shrub Leaves
tile.leaves.shrub.desc=Leaves from a shrub.
tile.leaves.cherry.flowering.name=Flowering Cherry Leaves
tile.leaves.cherry.flowering.desc=Leaves from a cherry tree that are budding with fruit.
tile.leaves.cacao.name=Cacao Leaves
tile.leaves.cacao.desc=Leaves from a cacao tree.
tile.leaves.thorn.name=Thorn Leaves
tile.leaves.thorn.desc=Leaves from a thorn tree.
tile.leaves.palm.name=Palm Leaves
tile.leaves.palm.desc=Leaves from a palm tree.

tile.sapling.oak.name=Oak Sapling
tile.sapling.oak.desc=Plant to grow an oak tree.
tile.sapling.pine.name=Pine Sapling
tile.sapling.pine.desc=Plant to grow a pine tree.
tile.sapling.birch.name=Birch Sapling
tile.sapling.birch.desc=Plant to grow a birch tree.
tile.sapling.cherry.name=Cherry Sapling
tile.sapling.cherry.desc=Plant to grow a cherry tree.
tile.sapling.eucalyptus.name=Eucalyptus Sapling
tile.sapling.eucalyptus.desc=Plant to grow a eucalyptus tree.
tile.sapling.oak.retro.name=Retro Oak Sapling
tile.sapling.oak.retro.desc=Plant to grow a tree from long ago.
tile.sapling.shrub.name=Shrub Sapling
tile.sapling.shrub.desc=Plant to grow a shrub.
tile.sapling.cacao.name=Cacao Sapling
tile.sapling.cacao.desc=Plant to grow a cacao tree.
tile.sapling.thorn.name=Thorn Sapling
tile.sapling.thorn.desc=Plant to grow a thorn tree.
tile.sapling.palm.name=Palm Sapling
tile.sapling.palm.desc=Plant to grow a palm tree.

tile.tallgrass.name=Tall Grass
tile.tallgrass.desc=Lush, growing grass.
tile.tallgrass.fern.name=Fern
tile.tallgrass.fern.desc=A fern plant.
tile.deadbush.name=Dead Bush
tile.deadbush.desc=A dried and withered plant.
tile.spinifex.name=Spinifex
tile.spinifex.desc=A spindly, thin grass from dry regions.
tile.algae.name=Algae
tile.algae.desc=Gooey vegetation that floats on the water's surface.

tile.flower.yellow.name=Dandelion
tile.flower.yellow.desc=A beautiful yellow flower.
tile.flower.red.name=Rose
tile.flower.red.desc=A beautiful red flower.
tile.flower.purple.name=Heather
tile.flower.purple.desc=Sprigs of purple petals. Brings good luck.
tile.flower.lightblue.name=Bluebell
tile.flower.lightblue.desc=A sad-looking blue flower.
tile.flower.pink.name=Orchid
tile.flower.pink.desc=A beautiful pink flower.
tile.flower.orange.name=Marigold
tile.flower.orange.desc=A beautiful orange flower.

tile.mushroom.red.name=Red Mushroom
tile.mushroom.red.desc=A tasty red mushroom. Good for stew.
tile.mushroom.brown.name=Brown Mushroom
tile.mushroom.brown.desc=A tasty brown mushroom. Good for stew.

tile.ore.coal.stone.name=Stone Coal Ore
tile.ore.coal.stone.desc=A chunk of coal embedded in stone.
tile.ore.coal.basalt.name=Basalt Coal Ore
tile.ore.coal.basalt.desc=A chunk of coal embedded in basalt.
tile.ore.coal.limestone.name=Limestone Coal Ore
tile.ore.coal.limestone.desc=A chunk of coal embedded in limestone.
tile.ore.coal.granite.name=Granite Coal Ore
tile.ore.coal.granite.desc=A chunk of coal embedded in granite.
tile.ore.coal.permafrost.name=Permafrost Coal Ore
tile.ore.coal.permafrost.desc=A chunk of coal embedded in permafrost.

tile.ore.iron.stone.name=Stone Iron Ore
tile.ore.iron.stone.desc=Iron nuggets embedded in stone.
tile.ore.iron.basalt.name=Basalt Iron Ore
tile.ore.iron.basalt.desc=Iron nuggets embedded in basalt.
tile.ore.iron.limestone.name=Limestone Iron Ore
tile.ore.iron.limestone.desc=Iron nuggets embedded in limestone.
tile.ore.iron.granite.name=Granite Iron Ore
tile.ore.iron.granite.desc=Iron nuggets embedded in granite.
tile.ore.iron.permafrost.name=Permafrost Iron Ore
tile.ore.iron.permafrost.desc=Iron nuggets embedded in permafrost.

tile.ore.gold.stone.name=Stone Gold Ore
tile.ore.gold.stone.desc=Gold nuggets embedded in stone.
tile.ore.gold.basalt.name=Basalt Gold Ore
tile.ore.gold.basalt.desc=Gold nuggets embedded in basalt.
tile.ore.gold.limestone.name=Limestone Gold Ore
tile.ore.gold.limestone.desc=Gold nuggets embedded in limestone.
tile.ore.gold.granite.name=Granite Gold Ore
tile.ore.gold.granite.desc=Gold nuggets embedded in granite.
tile.ore.gold.permafrost.name=Permafrost Gold Ore
tile.ore.gold.permafrost.desc=Gold nuggets embedded in permafrost.

tile.ore.lapis.stone.name=Stone Lapis Lazuli Ore
tile.ore.lapis.stone.desc=Chunks of lapis lazuli embedded in stone.
tile.ore.lapis.basalt.name=Basalt Lapis Lazuli Ore
tile.ore.lapis.basalt.desc=Chunks of lapis lazuli embedded in basalt.
tile.ore.lapis.limestone.name=Limestone Lapis Lazuli Ore
tile.ore.lapis.limestone.desc=Chunks of lapis lazuli embedded in limestone.
tile.ore.lapis.granite.name=Granite Lapis Lazuli Ore
tile.ore.lapis.granite.desc=Chunks of lapis lazuli embedded in granite.
tile.ore.lapis.permafrost.name=Permafrost Lapis Lazuli Ore
tile.ore.lapis.permafrost.desc=Chunks of lapis lazuli embedded in permafrost.

tile.ore.redstone.stone.name=Stone Redstone Ore
tile.ore.redstone.stone.desc=Red dust embedded in stone.
tile.ore.redstone.basalt.name=Basalt Redstone Ore
tile.ore.redstone.basalt.desc=Red dust embedded in basalt.
tile.ore.redstone.limestone.name=Limestone Redstone Ore
tile.ore.redstone.limestone.desc=Red dust embedded in limestone.
tile.ore.redstone.granite.name=Granite Redstone Ore
tile.ore.redstone.granite.desc=Red dust embedded in granite.
tile.ore.redstone.permafrost.name=Permafrost Redstone Ore
tile.ore.redstone.permafrost.desc=Red dust embedded in permafrost.
tile.ore.redstone.glowing.stone.name=Glowing Stone Redstone Ore
tile.ore.redstone.glowing.stone.desc=Red dust embedded in stone. Emits a faint light.
tile.ore.redstone.glowing.basalt.name=Glowing Basalt Redstone Ore
tile.ore.redstone.glowing.basalt.desc=Red dust embedded in basalt. Emits a faint light.
tile.ore.redstone.glowing.limestone.name=Glowing Limestone Redstone Ore
tile.ore.redstone.glowing.limestone.desc=Red dust embedded in limestone. Emits a faint light.
tile.ore.redstone.glowing.granite.name=Glowing Granite Redstone Ore
tile.ore.redstone.glowing.granite.desc=Red dust embedded in granite. Emits a faint light.
tile.ore.redstone.glowing.permafrost.name=Glowing Permafrost Redstone Ore
tile.ore.redstone.glowing.permafrost.desc=Red dust embedded in permafrost. Emits a faint light.

tile.ore.diamond.stone.name=Stone Diamond Ore
tile.ore.diamond.stone.desc=A chunk of diamond embedded in stone.
tile.ore.diamond.basalt.name=Basalt Diamond Ore
tile.ore.diamond.basalt.desc=A chunk of diamond embedded in basalt.
tile.ore.diamond.limestone.name=Limestone Diamond Ore
tile.ore.diamond.limestone.desc=A chunk of diamond embedded in limestone.
tile.ore.diamond.granite.name=Granite Diamond Ore
tile.ore.diamond.granite.desc=A chunk of diamond embedded in granite.
tile.ore.diamond.permafrost.name=Permafrost Diamond Ore
tile.ore.diamond.permafrost.desc=A chunk of diamond embedded in permafrost.

tile.ore.nethercoal.netherrack.name=Nether Coal Ore
tile.ore.nethercoal.netherrack.desc=A lump of Nether Coal embedded in netherrack.

tile.block.coal.name=Block of Coal
tile.block.coal.desc=A solid block of coal.
tile.block.iron.name=Block of Iron
tile.block.iron.desc=A solid block of iron. Heavy!
tile.block.gold.name=Block of Gold
tile.block.gold.desc=A solid block of gold, for flaunting your bling.
tile.block.lapis.name=Block of Lapis Lazuli
tile.block.lapis.desc=A solid block of lapis lazuli.
tile.block.redstone.name=Block of Redstone
tile.block.redstone.desc=A solid block of redstone.
tile.block.diamond.name=Block of Diamond
tile.block.diamond.desc=A solid block of diamond. Well done you.
tile.block.nethercoal.name=Block of Nether Coal
tile.block.nethercoal.desc=A solid block of Nether Coal.
tile.block.steel.name=Block of Steel
tile.block.steel.desc=A solid block of steel.
tile.block.quartz.name=Block of Quartz
tile.block.quartz.desc=A solid block of quartz.
tile.block.olivine.name=Block of Olivine
tile.block.olivine.desc=A solid block of olivine.
tile.block.charcoal.name=Block of Charcoal
tile.block.charcoal.desc=A solid block of charcoal.

tile.wire.redstone.name=Redstone Wire
tile.wire.redstone.desc=A strand of redstone dust laid on the ground.

tile.torch.redstone.idle.name=Redstone Torch
tile.torch.redstone.idle.desc=Emits a constant redstone signal.
tile.torch.redstone.active.name=Redstone Torch
tile.torch.redstone.active.desc=Emits a constant redstone signal.

tile.button.stone.name=Stone Button
tile.button.stone.desc=Emits a brief redstone signal when pressed.

tile.lever.cobble.stone.name=Cobblestone Lever
tile.lever.cobble.stone.desc=Allows turning a redstone signal on or off.

tile.pressureplate.stone.name=Stone Pressure Plate
tile.pressureplate.stone.desc=Emits a redstone signal when living creatures step on it.
tile.pressureplate.planks.oak.name=Wooden Pressure Plate
tile.pressureplate.planks.oak.desc=Emits a redstone signal when anything steps on it.
tile.pressureplate.cobble.stone.name=Cobblestone Pressure Plate
tile.pressureplate.cobble.stone.desc=Emits a redstone signal when players step on it.

tile.motionsensor.idle.name=Motion Sensor
tile.motionsensor.idle.desc=Emits a redstone signal when something moves past it.
tile.motionsensor.active.name=Active Motion Sensor
tile.motionsensor.active.desc=Emits a redstone signal when something moves past it.

tile.repeater.idle.name=Redstone Repeater
tile.repeater.idle.desc=Repeats redstone signals over a distance.
tile.repeater.active.name=Redstone Repeater
tile.repeater.active.desc=Repeats redstone signals over a distance.

tile.piston.base.name=Piston
tile.piston.base.desc=Pushes blocks but does not pull them.
tile.piston.base.sticky.name=Sticky Piston
tile.piston.base.sticky.desc=Pushes and pulls blocks.
tile.piston.head.name=Piston Head
tile.piston.head.desc=The pushy part of the piston.
tile.piston.moving.name=Piston Mover
tile.piston.moving.desc=The invisible moving part of the piston.
tile.piston.base.steel.name=Reinforced Piston
tile.piston.base.steel.desc=Pushes blocks and entities with immense force.
tile.piston.head.steel.name=Reinforced Piston Head
tile.piston.head.steel.desc=The pushy part of the steel piston.

tile.noteblock.name=Note Block
tile.noteblock.desc=Plays a musical note when powered.

tile.rail.name=Rail
tile.rail.desc=For rapid horizontal movement via minecart.
tile.rail.powered.name=Powered Rail
tile.rail.powered.desc=Makes minecarts go faster when powered.
tile.rail.detector.name=Detector Rail
tile.rail.detector.desc=Emits a redstone signal when a minecart crosses it.

tile.spikes.name=Spike Trap
tile.spikes.desc=Deactivates when powered. Technically a war crime.

tile.dispenser.cobble.stone.name=Dispenser
tile.dispenser.cobble.stone.desc=Fires items out of the hole in the front.
tile.activator.cobble.netherrack.name=Activator
tile.activator.cobble.netherrack.desc=Uses items for you.

tile.trapdoor.planks.oak.name=Oak Trapdoor
tile.trapdoor.planks.oak.desc=Like a door, but flat.
tile.trapdoor.iron.name=Iron Trapdoor
tile.trapdoor.iron.desc=Like a door, but flat and made of iron.
tile.trapdoor.glass.name=Glass Trapdoor
tile.trapdoor.glass.desc=Useless at its job.

tile.tnt.name=TNT
tile.tnt.desc=Goes off with a bang.

tile.door.planks.oak.bottom.name=Bottom Wooden Door
tile.door.planks.oak.bottom.desc=/give Honeydew 64 46
tile.door.planks.oak.top.name=Top Wooden Door
tile.door.planks.oak.top.desc=Oh, wait, that's not TNT, that's half a door.
tile.door.iron.bottom.name=Bottom Iron Door
tile.door.iron.bottom.desc=Not much good on its own.
tile.door.iron.top.name=Top Iron Door
tile.door.iron.top.desc=Could use a friend.

tile.mesh.name=Mesh Block
tile.mesh.desc=Allows items to pass through but nothing else.
tile.mesh.gold.name=Gold Mesh Block
tile.mesh.gold.desc=Allows a specified item to pass through but nothing else.

tile.bed.name=Bed
tile.bed.desc=Bed!
tile.seat.name=Seat
tile.seat.desc=Sit down and relax.

tile.cobweb.name=Cobweb
tile.cobweb.desc=Sticky silky strands woven by spiders.

tile.fire.name=Fire
tile.fire.desc=Ouch, fire hot!
tile.brazier.inactive.name=Brazier
tile.brazier.inactive.desc=A safe place to keep a fire.
tile.brazier.active.name=Lit Brazier
tile.brazier.active.desc=A safe place to keep a fire.

tile.mobspawner.name=Mob Spawner
tile.mobspawner.desc=A cage filled with horror.
tile.mobspawner.deactivated.name=Deactivated Mob Spawner
tile.mobspawner.deactivated.desc=A cage no longer filled with horror.

tile.workbench.name=Workbench
tile.workbench.desc=For bigger projects.

tile.furnace.stone.idle.name=Furnace
tile.furnace.stone.idle.desc=For melting, heating, and cooking blocks and items.
tile.furnace.stone.active.name=Lit Furnace
tile.furnace.stone.active.desc=For melting, heating, and cooking blocks and items.
tile.furnace.blast.idle.name=Blast Furnace
tile.furnace.blast.idle.desc=Burns hotter than a normal furnace.
tile.furnace.blast.active.name=Lit Blast Furnace
tile.furnace.blast.active.desc=Burns hotter than a normal furnace.

tile.trommel.idle.name=Trommel
tile.trommel.idle.desc=A machine that separates dirt from other useful items.
tile.trommel.active.name=Lit Trommel
tile.trommel.active.desc=A machine that separates dirt from other useful items.

tile.chest.planks.oak.name=Wooden Chest
tile.chest.planks.oak.desc=A place to store your items.
tile.chest.planks.oak.painted.name=Mystery Wooden Chest
tile.chest.planks.oak.painted.desc=How did you get this?!
tile.chest.planks.oak.painted.black.name=Black Wooden Chest
tile.chest.planks.oak.painted.black.desc=A place to store your items.
tile.chest.planks.oak.painted.red.name=Red Wooden Chest
tile.chest.planks.oak.painted.red.desc=A place to store your items.
tile.chest.planks.oak.painted.green.name=Green Wooden Chest
tile.chest.planks.oak.painted.green.desc=A place to store your items.
tile.chest.planks.oak.painted.brown.name=Brown Wooden Chest
tile.chest.planks.oak.painted.brown.desc=A place to store your items.
tile.chest.planks.oak.painted.blue.name=Blue Wooden Chest
tile.chest.planks.oak.painted.blue.desc=A place to store your items.
tile.chest.planks.oak.painted.purple.name=Purple Wooden Chest
tile.chest.planks.oak.painted.purple.desc=A place to store your items.
tile.chest.planks.oak.painted.cyan.name=Cyan Wooden Chest
tile.chest.planks.oak.painted.cyan.desc=A place to store your items.
tile.chest.planks.oak.painted.silver.name=Light Gray Wooden Chest
tile.chest.planks.oak.painted.silver.desc=A place to store your items.
tile.chest.planks.oak.painted.gray.name=Gray Wooden Chest
tile.chest.planks.oak.painted.gray.desc=A place to store your items.
tile.chest.planks.oak.painted.pink.name=Pink Wooden Chest
tile.chest.planks.oak.painted.pink.desc=A place to store your items.
tile.chest.planks.oak.painted.lime.name=Lime Wooden Chest
tile.chest.planks.oak.painted.lime.desc=A place to store your items.
tile.chest.planks.oak.painted.yellow.name=Yellow Wooden Chest
tile.chest.planks.oak.painted.yellow.desc=A place to store your items.
tile.chest.planks.oak.painted.lightblue.name=Light Blue Wooden Chest
tile.chest.planks.oak.painted.lightblue.desc=A place to store your items.
tile.chest.planks.oak.painted.magenta.name=Magenta Wooden Chest
tile.chest.planks.oak.painted.magenta.desc=A place to store your items.
tile.chest.planks.oak.painted.orange.name=Orange Wooden Chest
tile.chest.planks.oak.painted.orange.desc=A place to store your items.
tile.chest.planks.oak.painted.white.name=White Wooden Chest
tile.chest.planks.oak.painted.white.desc=A place to store your items.
tile.chest.legacy.name=Legacy Chest

tile.crops.wheat.name=Wheat Crops
tile.crops.wheat.desc=Wheat, plucked from the ground.
tile.crops.pumpkin.name=Pumpkin Crops
tile.crops.pumpkin.desc=A ripening pumpkin, plucked from the ground.

tile.farmland.dirt.name=Farmland
tile.farmland.dirt.desc=Tilled soil for growing crops.

tile.sign.post.planks.oak.name=Oak Signpost
tile.sign.post.planks.oak.desc=A free-standing oak sign.
tile.sign.wall.planks.oak.name=Oak Wall Sign
tile.sign.wall.planks.oak.desc=An oak sign placed on a wall.

tile.layer.snow.name=Snow Layer
tile.layer.snow.desc=A flat layer of snow.
tile.layer.leaves.oak.name=Leaf Pile
tile.layer.leaves.oak.desc=A pile of leaves.
tile.layer.slate.name=Slate Layer
tile.layer.slate.desc=A flat sheet of slate.

tile.ice.name=Ice
tile.ice.desc=Slippery frozen water.
tile.ice.perma.name=Perma-Ice
tile.ice.perma.desc=Ice imbued with the essence of stone.

tile.block.snow.name=Block of Snow
tile.block.snow.desc=Lots of snow compacted into a block.

tile.cactus.name=Cactus
tile.cactus.desc=A spiky plant that grows in the desert.

tile.block.clay.name=Block of Clay
tile.block.clay.desc=A block of compacted clay.

tile.sugarcane.name=Sugarcane
tile.sugarcane.desc=Not as sweet as you.

tile.block.sugarcane.name=Block of Sugarcane
tile.block.sugarcane.desc=One very big sugar cube.
tile.block.sugarcane.baked.name=Baked Block of Sugarcane
tile.block.sugarcane.baked.desc=Smells absolutely delicious.

tile.jukebox.name=Jukebox
tile.jukebox.desc=Plays your favourite tunes, assuming you have the right record.

tile.pumpkin.name=Pumpkin
tile.pumpkin.desc=An orange squash that grows in the wild.
tile.pumpkin.carved.idle.name=Carved Pumpkin
tile.pumpkin.carved.idle.desc=An orange squash with a spooky face.
tile.pumpkin.carved.active.name=Jack 'o' Lantern
tile.pumpkin.carved.active.desc=An orange squash with a spooky face, lit by a torch.
tile.pumpkin.redstone.name=Redstone Jack 'o' Lantern
tile.pumpkin.redstone.desc=An orange squash with a spooky face, lit by a redstone torch.

tile.cobble.netherrack.name=Cobbled Netherrack
tile.cobble.netherrack.desc=Dark red rock that burns forever.
tile.cobble.netherrack.igneous.name=Igneous Cobbled Netherrack
tile.cobble.netherrack.igneous.desc=Extreme heat has made this rock glow from inside.
tile.cobble.netherrack.mossy.name=Mossy Cobbled Netherrack
tile.cobble.netherrack.mossy.desc=Cobbled netherrack, covered in something like moss.
tile.netherrack.name=Netherrack
tile.netherrack.desc=Dark red rock, smoothed by heat and time.
tile.brick.netherrack.name=Netherrack Bricks
tile.brick.netherrack.desc=Stacked bricks of netherrack.
tile.slab.netherrack.carved.name=Polished Netherrack Slab
tile.slab.netherrack.carved.desc=A slab of polished netherrack.
tile.slab.cobble.netherrack.name=Cobbled Netherrack Slab
tile.slab.cobble.netherrack.desc=A slab of cobbled netherrack.
tile.slab.brick.netherrack.name=Netherrack Brick Slab
tile.slab.brick.netherrack.desc=A slab of netherrack bricks.
tile.stairs.cobble.netherrack.name=Cobbled Netherrack Stairs
tile.stairs.cobble.netherrack.desc=Cobbled netherrack block used for rapid vertical movement.
tile.stairs.brick.netherrack.name=Netherrack Brick Stairs
tile.stairs.brick.netherrack.desc=Netherrack brick block used for rapid vertical movement.

tile.soulsand.name=Soul Sand
tile.soulsand.desc=Squishy brown sand that's tough to walk through.
tile.soulschist.name=Soul Schist
tile.soulschist.desc=A hideous medley of ancient bones, fused through heat, pressure, and time.

tile.glowstone.name=Block of Glowstone
tile.glowstone.desc=Constantly emits a strong yellowish light.

tile.portal.nether.name=Nether Portal
tile.portal.nether.desc=A portal to the Nether.
tile.portal.paradise.name=Paradise Portal
tile.portal.paradise.desc=A portal to Paradise.

tile.cake.name=Cake
tile.cake.desc=I just can't cake it any more.
tile.pumpkin_pie.name=Pumpkin Pie
tile.pumpkin_pie.desc=I don't wanna pie!

tile.lamp.idle.name=Lamp
tile.lamp.idle.desc=How did you get this?!
tile.lamp.idle.black.name=Black Lamp
tile.lamp.idle.black.desc=A redstone lamp that can emit light. Tinted black.
tile.lamp.idle.red.name=Red Lamp
tile.lamp.idle.red.desc=A redstone lamp that can emit light. Tinted red.
tile.lamp.idle.green.name=Green Lamp
tile.lamp.idle.green.desc=A redstone lamp that can emit light. Tinted green.
tile.lamp.idle.brown.name=Brown Lamp
tile.lamp.idle.brown.desc=A redstone lamp that can emit light. Tinted brown.
tile.lamp.idle.blue.name=Blue Lamp
tile.lamp.idle.blue.desc=A redstone lamp that can emit light. Tinted blue.
tile.lamp.idle.purple.name=Purple Lamp
tile.lamp.idle.purple.desc=A redstone lamp that can emit light. Tinted purple.
tile.lamp.idle.cyan.name=Cyan Lamp
tile.lamp.idle.cyan.desc=A redstone lamp that can emit light. Tinted cyan.
tile.lamp.idle.silver.name=Light Gray Lamp
tile.lamp.idle.silver.desc=A redstone lamp that can emit light. Tinted light gray.
tile.lamp.idle.gray.name=Gray Lamp
tile.lamp.idle.gray.desc=A redstone lamp that can emit light. Tinted gray.
tile.lamp.idle.pink.name=Pink Lamp
tile.lamp.idle.pink.desc=A redstone lamp that can emit light. Tinted pink.
tile.lamp.idle.lime.name=Lime Lamp
tile.lamp.idle.lime.desc=A redstone lamp that can emit light. Tinted lime.
tile.lamp.idle.yellow.name=Yellow Lamp
tile.lamp.idle.yellow.desc=A redstone lamp that can emit light. Tinted yellow.
tile.lamp.idle.lightblue.name=Light Blue Lamp
tile.lamp.idle.lightblue.desc=A redstone lamp that can emit light. Tinted light blue.
tile.lamp.idle.magenta.name=Magenta Lamp
tile.lamp.idle.magenta.desc=A redstone lamp that can emit light. Tinted magenta.
tile.lamp.idle.orange.name=Orange Lamp
tile.lamp.idle.orange.desc=A redstone lamp that can emit light. Tinted orange.
tile.lamp.idle.white.name=White Lamp
tile.lamp.idle.white.desc=A redstone lamp that can emit light.

tile.lamp.active.name=Lit Lamp
tile.lamp.active.desc=How did you get this?!
tile.lamp.active.black.name=Lit Black Lamp
tile.lamp.active.black.desc=A redstone lamp that emits light. Tinted black.
tile.lamp.active.red.name=Lit Red Lamp
tile.lamp.active.red.desc=A redstone lamp that emits light. Tinted red.
tile.lamp.active.green.name=Lit Green Lamp
tile.lamp.active.green.desc=A redstone lamp that emits light. Tinted green.
tile.lamp.active.brown.name=Lit Brown Lamp
tile.lamp.active.brown.desc=A redstone lamp that emits light. Tinted brown.
tile.lamp.active.blue.name=Lit Blue Lamp
tile.lamp.active.blue.desc=A redstone lamp that emits light. Tinted blue.
tile.lamp.active.purple.name=Lit Purple Lamp
tile.lamp.active.purple.desc=A redstone lamp that emits light. Tinted purple.
tile.lamp.active.cyan.name=Lit Cyan Lamp
tile.lamp.active.cyan.desc=A redstone lamp that emits light. Tinted cyan.
tile.lamp.active.silver.name=Lit Light Gray Lamp
tile.lamp.active.silver.desc=A redstone lamp that emits light. Tinted light gray.
tile.lamp.active.gray.name=Lit Gray Lamp
tile.lamp.active.gray.desc=A redstone lamp that emits light. Tinted gray.
tile.lamp.active.pink.name=Lit Pink Lamp
tile.lamp.active.pink.desc=A redstone lamp that emits light. Tinted pink.
tile.lamp.active.lime.name=Lit Lime Lamp
tile.lamp.active.lime.desc=A redstone lamp that emits light. Tinted lime.
tile.lamp.active.yellow.name=Yellow Lamp
tile.lamp.active.yellow.desc=A redstone lamp that emits light. Tinted yellow.
tile.lamp.active.lightblue.name=Light Blue Lamp
tile.lamp.active.lightblue.desc=A redstone lamp that emits light. Tinted light blue.
tile.lamp.active.magenta.name=Magenta Lamp
tile.lamp.active.magenta.desc=A redstone lamp that emits light. Tinted magenta.
tile.lamp.active.orange.name=Orange Lamp
tile.lamp.active.orange.desc=A redstone lamp that emits light. Tinted orange.
tile.lamp.active.white.name=White Lamp
tile.lamp.active.white.desc=A redstone lamp that emits light.

tile.stone.polished.name=Polished Stone
tile.stone.polished.desc=A polished block of stone.
tile.granite.polished.name=Polished Granite
tile.granite.polished.desc=A polished block of granite.
tile.limestone.polished.name=Polished Limestone
tile.limestone.polished.desc=A polished block of limestone.
tile.basalt.polished.name=Polished Basalt
tile.basalt.polished.desc=A polished block of basalt.
tile.slate.polished.name=Polished Slate
tile.slate.polished.desc=A polished block of slate.
tile.permafrost.polished.name=Polished Permafrost
tile.permafrost.polished.desc=A polished block of permafrost.
tile.netherrack.polished.name=Polished Netherrack
tile.netherrack.polished.desc=A polished block of netherrack.

tile.candle.wax.soul.name=Soul Wax Candle
tile.candle.wax.soul.desc=A waxy brown candle that glows with an unnatural light.

tile.basket.name=Basket
tile.basket.desc=A wicker container for holding items.

tile.overlay.pebbles.name=Pebbles
tile.overlay.pebbles.desc=A cluster of pebbles.

tile.fence.chainlink.name=Chainlink Fence
tile.fence.chainlink.desc=A fence made of interconnected chain links. Can be climbed!
tile.fence.paper_wall.name=Paper Wall Fence
tile.fence.paper_wall.desc=A fence made of delicate paper. Be careful!
tile.fence.steel.name=Steel Fence
tile.fence.steel.desc=A fence made of tough steel. Intimidating!

tile.lantern.firefly.green.name=Green Firefly Lantern
tile.lantern.firefly.green.desc=A glass jar containing a swarm of green fireflies.
tile.lantern.firefly.orange.name=Orange Firefly Lantern
tile.lantern.firefly.orange.desc=A glass jar containing a swarm of orange fireflies.
tile.lantern.firefly.blue.name=Blue Firefly Lantern
tile.lantern.firefly.blue.desc=A glass jar containing a swarm of blue fireflies.
tile.lantern.firefly.red.name=Red Firefly Lantern
tile.lantern.firefly.red.desc=A glass jar containing a swarm of red fireflies.

tile.flag.name=Flag
tile.flag.desc=A flag to mark your territory.

tile.paper_wall.name=Paper Wall
tile.paper_wall.desc=A wall made of delicate paper. Be careful!

tile.trapdoor.planks.oak.painted.name=Painted Trapdoor
tile.trapdoor.planks.oak.painted.desc=How did you get this?!
tile.trapdoor.planks.oak.painted.black.name=Black Oak Trapdoor
tile.trapdoor.planks.oak.painted.black.desc=Like a door, but flat and painted black.
tile.trapdoor.planks.oak.painted.red.name=Red Oak Trapdoor
tile.trapdoor.planks.oak.painted.red.desc=Like a door, but flat and painted red.
tile.trapdoor.planks.oak.painted.green.name=Green Oak Trapdoor
tile.trapdoor.planks.oak.painted.green.desc=Like a door, but flat and painted green.
tile.trapdoor.planks.oak.painted.brown.name=Brown Oak Trapdoor
tile.trapdoor.planks.oak.painted.brown.desc=Like a door, but flat and painted brown.
tile.trapdoor.planks.oak.painted.blue.name=Blue Oak Trapdoor
tile.trapdoor.planks.oak.painted.blue.desc=Like a door, but flat and painted blue.
tile.trapdoor.planks.oak.painted.purple.name=Purple Oak Trapdoor
tile.trapdoor.planks.oak.painted.purple.desc=Like a door, but flat and painted purple.
tile.trapdoor.planks.oak.painted.cyan.name=Cyan Oak Trapdoor
tile.trapdoor.planks.oak.painted.cyan.desc=Like a door, but flat and painted cyan.
tile.trapdoor.planks.oak.painted.silver.name=Light Gray Oak Trapdoor
tile.trapdoor.planks.oak.painted.silver.desc=Like a door, but flat and painted light gray.
tile.trapdoor.planks.oak.painted.gray.name=Gray Oak Trapdoor
tile.trapdoor.planks.oak.painted.gray.desc=Like a door, but flat and painted gray.
tile.trapdoor.planks.oak.painted.pink.name=Pink Oak Trapdoor
tile.trapdoor.planks.oak.painted.pink.desc=Like a door, but flat and painted pink.
tile.trapdoor.planks.oak.painted.lime.name=Lime Oak Trapdoor
tile.trapdoor.planks.oak.painted.lime.desc=Like a door, but flat and painted lime.
tile.trapdoor.planks.oak.painted.yellow.name=Yellow Oak Trapdoor
tile.trapdoor.planks.oak.painted.yellow.desc=Like a door, but flat and painted yellow.
tile.trapdoor.planks.oak.painted.lightblue.name=Light Blue Oak Trapdoor
tile.trapdoor.planks.oak.painted.lightblue.desc=Like a door, but flat and painted light blue.
tile.trapdoor.planks.oak.painted.magenta.name=Magenta Oak Trapdoor
tile.trapdoor.planks.oak.painted.magenta.desc=Like a door, but flat and painted magenta.
tile.trapdoor.planks.oak.painted.orange.name=Orange Oak Trapdoor
tile.trapdoor.planks.oak.painted.orange.desc=Like a door, but flat and painted orange.
tile.trapdoor.planks.oak.painted.white.name=White Oak Trapdoor
tile.trapdoor.planks.oak.painted.white.desc=Like a door, but flat and painted white.

tile.door.planks.oak.painted.bottom.name=Bottom Painted Wooden Door
tile.door.planks.oak.painted.bottom.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.black.name=Black Bottom Wooden Door
tile.door.planks.oak.painted.bottom.black.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.red.name=Red Bottom Wooden Door
tile.door.planks.oak.painted.bottom.red.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.green.name=Green Bottom Wooden Door
tile.door.planks.oak.painted.bottom.green.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.brown.name=Brown Bottom Wooden Door
tile.door.planks.oak.painted.bottom.brown.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.blue.name=Blue Bottom Wooden Door
tile.door.planks.oak.painted.bottom.blue.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.purple.name=Purple Bottom Wooden Door
tile.door.planks.oak.painted.bottom.purple.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.cyan.name=Cyan Bottom Wooden Door
tile.door.planks.oak.painted.bottom.cyan.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.silver.name=Light Gray Bottom Wooden Door
tile.door.planks.oak.painted.bottom.silver.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.gray.name=Gray Bottom Wooden Door
tile.door.planks.oak.painted.bottom.gray.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.pink.name=Pink Bottom Wooden Door
tile.door.planks.oak.painted.bottom.pink.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.lime.name=Lime Bottom Wooden Door
tile.door.planks.oak.painted.bottom.lime.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.yellow.name=Yellow Bottom Wooden Door
tile.door.planks.oak.painted.bottom.yellow.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.lightblue.name=Light Blue Bottom Wooden Door
tile.door.planks.oak.painted.bottom.lightblue.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.magenta.name=Magenta Bottom Wooden Door
tile.door.planks.oak.painted.bottom.magenta.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.orange.name=Orange Bottom Wooden Door
tile.door.planks.oak.painted.bottom.orange.desc=How did you get this?!
tile.door.planks.oak.painted.bottom.white.name=White Bottom Wooden Door
tile.door.planks.oak.painted.bottom.white.desc=How did you get this?!

tile.door.planks.oak.painted.top.name=Top Painted Wooden Door
tile.door.planks.oak.painted.top.desc=How did you get this?!
tile.door.planks.oak.painted.top.black.name=Black Top Wooden Door
tile.door.planks.oak.painted.top.black.desc=How did you get this?!
tile.door.planks.oak.painted.top.red.name=Red Top Wooden Door
tile.door.planks.oak.painted.top.red.desc=How did you get this?!
tile.door.planks.oak.painted.top.green.name=Green Top Wooden Door
tile.door.planks.oak.painted.top.green.desc=How did you get this?!
tile.door.planks.oak.painted.top.brown.name=Brown Top Wooden Door
tile.door.planks.oak.painted.top.brown.desc=How did you get this?!
tile.door.planks.oak.painted.top.blue.name=Blue Top Wooden Door
tile.door.planks.oak.painted.top.blue.desc=How did you get this?!
tile.door.planks.oak.painted.top.purple.name=Purple Top Wooden Door
tile.door.planks.oak.painted.top.purple.desc=How did you get this?!
tile.door.planks.oak.painted.top.cyan.name=Cyan Top Wooden Door
tile.door.planks.oak.painted.top.cyan.desc=How did you get this?!
tile.door.planks.oak.painted.top.silver.name=Light Gray Top Wooden Door
tile.door.planks.oak.painted.top.silver.desc=How did you get this?!
tile.door.planks.oak.painted.top.gray.name=Gray Top Wooden Door
tile.door.planks.oak.painted.top.gray.desc=How did you get this?!
tile.door.planks.oak.painted.top.pink.name=Pink Top Wooden Door
tile.door.planks.oak.painted.top.pink.desc=How did you get this?!
tile.door.planks.oak.painted.top.lime.name=Lime Top Wooden Door
tile.door.planks.oak.painted.top.lime.desc=How did you get this?!
tile.door.planks.oak.painted.top.yellow.name=Yellow Top Wooden Door
tile.door.planks.oak.painted.top.yellow.desc=How did you get this?!
tile.door.planks.oak.painted.top.lightblue.name=Light Blue Top Wooden Door
tile.door.planks.oak.painted.top.lightblue.desc=How did you get this?!
tile.door.planks.oak.painted.top.magenta.name=Magenta Top Wooden Door
tile.door.planks.oak.painted.top.magenta.desc=How did you get this?!
tile.door.planks.oak.painted.top.orange.name=Orange Top Wooden Door
tile.door.planks.oak.painted.top.orange.desc=How did you get this?!
tile.door.planks.oak.painted.top.white.name=White Top Wooden Door
tile.door.planks.oak.painted.top.white.desc=How did you get this?!

tile.door.glass.top.name=Top Glass Door
tile.door.glass.top.desc=You shouldn't be seeing this.
tile.door.glass.bottom.name=Bottom Glass Door
tile.door.glass.bottom.desc=And that's not just because it's glass.

tile.door.steel.top.name=Top Steel Door
tile.door.steel.top.desc=Don't take this without asking.
tile.door.steel.bottom.name=Bottom Steel Door
tile.door.steel.bottom.desc=Steeler, no steeling!

tile.trapdoor.steel.name=Steel Trapdoor
tile.trapdoor.steel.desc=Like a door, but flat and made of durable steel.

tile.glass.steel.name=Reinforced Glass
tile.glass.steel.desc=Like glass, but without the fragility.

tile.rope.name=Rope
tile.rope.desc=Rope, rope, rope your boat.
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/client/entity/particle/LeafParticle.java b/src/main/java/net/minecraft/client/entity/particle/LeafParticle.java
index ad3b9990b..2afe69663 100644
--- a/src/main/java/net/minecraft/client/entity/particle/LeafParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/LeafParticle.java
@@ -16,7 +16,7 @@ import net.minecraft.core.world.World;
 public class LeafParticle extends Particle {
     public LeafParticle(World world, double x, double y, double z, double xa, double ya, double za) {
         super(world, x, y, z, xa, ya, za);
-        this.tex = TextureRegistry.getTexture("minecraft:block/leaves_oak_fancy");
+        this.tex = TextureRegistry.getTexture("minecraft:block/leaves/oak_fancy");
         this.gravity = 0.125F;
         this.size /= 2.0F;
         this.lifetime *= 16;
diff --git a/src/main/java/net/minecraft/client/entity/particle/NoteParticle.java b/src/main/java/net/minecraft/client/entity/particle/NoteParticle.java
index 42dfd9f8b..5f6fd6dd8 100644
--- a/src/main/java/net/minecraft/client/entity/particle/NoteParticle.java
+++ b/src/main/java/net/minecraft/client/entity/particle/NoteParticle.java
@@ -9,19 +9,19 @@ import net.minecraft.core.world.World;
 public class NoteParticle extends Particle {
     private final float oSize;
 
-    public NoteParticle(World world, double x, double y, double z, double xa, double ya, double za) {
-        this(world, x, y, z, xa, ya, za, 2.0F);
+    public NoteParticle(World world, double x, double y, double z, double xa, double ya, double za, int data) {
+        this(world, x, y, z, xa, ya, za, data, 2.0F);
     }
 
-    public NoteParticle(World world, double x, double y, double z, double xa, double ya, double za, float scale) {
-        super(world, x, y, z, 0.0D, 0.0D, 0.0D);
+    public NoteParticle(World world, double x, double y, double z, double xa, double ya, double za, int data, float scale) {
+        super(world, x, y, z, xa, ya, za);
         this.xd *= 0.01D;
         this.yd *= 0.01D;
         this.zd *= 0.01D;
         this.yd += 0.2D;
-        this.rCol = MathHelper.sin(((float) xa + 0.0F) * MathHelper.PI * 2.0F) * 0.65F + 0.35F;
-        this.gCol = MathHelper.sin(((float) xa + 1f / 3) * MathHelper.PI * 2.0F) * 0.65F + 0.35F;
-        this.bCol = MathHelper.sin(((float) xa + 2f / 3) * MathHelper.PI * 2.0F) * 0.65F + 0.35F;
+        this.rCol = MathHelper.sin(((data / 24f) + 0.0F) * MathHelper.PI * 2.0F) * 0.65F + 0.35F;
+        this.gCol = MathHelper.sin(((data / 24f) + 1f / 3) * MathHelper.PI * 2.0F) * 0.65F + 0.35F;
+        this.bCol = MathHelper.sin(((data / 24f) + 2f / 3) * MathHelper.PI * 2.0F) * 0.65F + 0.35F;
         this.size *= 0.75F;
         this.size *= scale;
         this.oSize = this.size;
diff --git a/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java b/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java
index 4358d47a8..f5a6351f7 100644
--- a/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java
@@ -36,7 +36,7 @@ public final class ParticleDispatcher extends Dispatcher<String, ParticleLambda>
         Minecraft mc = Minecraft.getMinecraft(this);
         addDispatch("bubble", (world, x, y, z, motionX, motionY, motionZ, data) -> new BubbleParticle(world, x, y, z, motionX, motionY, motionZ, true));
         addDispatch("smoke", (world, x, y, z, motionX, motionY, motionZ, data) -> new SmokeParticle(world, x, y, z, motionX, motionY, motionX));
-        addDispatch("note", (world, x, y, z, motionX, motionY, motionZ, data) -> new NoteParticle(world, x, y, z, motionX, motionY, motionX));
+        addDispatch("note", (world, x, y, z, motionX, motionY, motionZ, data) -> new NoteParticle(world, x, y, z, motionX, motionY, motionX, data));
         addDispatch("portal", (world, x, y, z, motionX, motionY, motionZ, data) -> new PortalParticle(world, x, y, z, motionX, motionY, motionX));
         addDispatch("explode", (world, x, y, z, motionX, motionY, motionZ, data) -> new ExplodeParticle(world, x, y, z, motionX, motionY, motionX));
         addDispatch("flame", (world, x, y, z, motionX, motionY, motionZ, data) -> new FlameParticle(world, x, y, z, motionX, motionY, motionX, FlameParticle.Type.ORANGE));
diff --git a/src/main/java/net/minecraft/client/gui/achievements/pages/OverworldPage.java b/src/main/java/net/minecraft/client/gui/achievements/pages/OverworldPage.java
index 3dd29cc46..5f48a3708 100644
--- a/src/main/java/net/minecraft/client/gui/achievements/pages/OverworldPage.java
+++ b/src/main/java/net/minecraft/client/gui/achievements/pages/OverworldPage.java
@@ -124,7 +124,7 @@ public class OverworldPage extends AchievementPage {
 
                 for (int rY = y; rY - orgY >= 0; rY--) {
                     if (rY == y) {
-                        layer.put(TextureRegistry.getTexture("minecraft:block/grass_side"), _x - orgX, rY - orgY);
+                        layer.put(TextureRegistry.getTexture("minecraft:block/grass/side"), _x - orgX, rY - orgY);
                     } else {
                         layer.put(null, _x - orgX, rY - orgY);
                     }
@@ -326,7 +326,7 @@ public class OverworldPage extends AchievementPage {
         return 0x00ff00;
     }
 
-    private static final IconCoordinate chest = TextureRegistry.getTexture("minecraft:block/chest_planks_oak_front");
+    private static final IconCoordinate chest = TextureRegistry.getTexture("minecraft:block/chest/planks/front");
     private static final IconCoordinate spawner = getTextureFromBlock(Blocks.MOBSPAWNER);
 
     protected static PageStructure dungeonBrick = new PageStructure(new Object[][][]
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingPage.java b/src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingPage.java
index e70e8cb2c..c96f6759a 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/crafting/CraftingPage.java
@@ -36,6 +36,7 @@ import net.minecraft.core.data.registry.recipe.entry.RecipeEntryRepairable;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryScrap;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryUndyeing;
 import net.minecraft.core.entity.player.Player;
+import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.inventory.slot.Slot;
 import net.minecraft.client.gui.guidebook.GuidebookSlot;
 import org.lwjgl.input.Keyboard;
@@ -114,7 +115,7 @@ public class CraftingPage
     @Override
     protected void renderForeground(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         if(recipes.isEmpty()){
-            drawStringCenteredNoShadow(fr,"No recipes found :(" ,x+width/2,y+height/2,0xFF808080);
+            drawStringCenteredNoShadow(fr, I18n.getInstance().translateKey("guidebook.section.search.error.no_recipes"), x+width/2,y+height/2,0xFF808080);
         }
         GuidebookSlot mouseOverSlot = null;
         for (GuidebookSlot slot : slots) {
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/search/SearchPage.java b/src/main/java/net/minecraft/client/gui/guidebook/search/SearchPage.java
index 45f97deee..1a9dd0195 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/search/SearchPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/search/SearchPage.java
@@ -7,6 +7,7 @@ import net.minecraft.client.gui.guidebook.*;
 import net.minecraft.client.render.Font;
 import net.minecraft.client.render.TextureManager;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
+import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.command.TextFormatting;
 
 public class SearchPage extends GuidebookPage {
@@ -35,19 +36,21 @@ public class SearchPage extends GuidebookPage {
             }
         }
 
-        drawStringCenteredNoShadow(fr,results+" results found.",x+width/2,y+10, 0xFF404040);
+        I18n tr = I18n.getInstance();
+
+        drawStringCenteredNoShadow(fr,tr.translateKeyAndFormat("guidebook.section.search.result.found", results),x+width/2,y+10, 0xFF404040);
 
         int offset = y+70;
-        drawStringCenteredNoShadow(fr,"Search Modifiers",x+width/2,offset, 0xFF404040);
-        drawStringNoShadow(fr, TextFormatting.RED+"r:..."+TextFormatting.RESET+": Search for recipes",x+10,offset+=15, 0xFF404040);
-        drawStringNoShadow(fr,TextFormatting.RED+"u:..."+TextFormatting.RESET+": Search for usages",x+10,offset+=10, 0xFF404040);
-        drawStringNoShadow(fr,TextFormatting.RED+"#..."+TextFormatting.RESET+": Search for item group",x+10,offset+=10, 0xFF404040);
-        drawStringNoShadow(fr,TextFormatting.RED+"@namespace"+TextFormatting.RESET+": Search in",x+10,offset+=10, 0xFF404040);
-        drawStringNoShadow(fr,"namespace",x+10,offset+=10, 0xFF404040);
-        drawStringNoShadow(fr,TextFormatting.RED+"@namespace:group"+TextFormatting.RESET+": Search",x+10,offset+=10, 0xFF404040);
-        drawStringNoShadow(fr,"in recipe group",x+10,offset+=10, 0xFF404040);
-        drawStringNoShadow(fr, TextFormatting.RED+"...!"+TextFormatting.RESET+": Strict search",x+10,offset+=10, 0xFF404040);
-        drawStringNoShadow(fr,TextFormatting.RED+"..."+TextFormatting.RESET+": General search",x+10,offset+=15, 0xFF404040);
+        drawStringCenteredNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.title"),x+width/2,offset, 0xFF404040);
+        drawStringNoShadow(fr, tr.translateKey("guidebook.section.search.info.modifiers.1"),x+10,offset+=15, 0xFF404040);
+        drawStringNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.2"),x+10,offset+=10, 0xFF404040);
+        drawStringNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.3"),x+10,offset+=10, 0xFF404040);
+        drawStringNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.4"),x+10,offset+=10, 0xFF404040);
+        drawStringNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.5"),x+10,offset+=10, 0xFF404040);
+        drawStringNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.6"),x+10,offset+=10, 0xFF404040);
+        drawStringNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.7"),x+10,offset+=10, 0xFF404040);
+        drawStringNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.8"),x+10,offset+=10, 0xFF404040);
+        drawStringNoShadow(fr,tr.translateKey("guidebook.section.search.info.modifiers.9"),x+10,offset+=15, 0xFF404040);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingPage.java b/src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingPage.java
index abbd48a68..e96a029d4 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/smelting/BlastSmeltingPage.java
@@ -17,6 +17,7 @@ import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryBlastFurnace;
 import net.minecraft.core.entity.player.Player;
+import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.inventory.slot.Slot;
 import net.minecraft.client.gui.guidebook.GuidebookSlot;
 import org.lwjgl.input.Keyboard;
@@ -72,7 +73,7 @@ public class BlastSmeltingPage
     @Override
     protected void renderForeground(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         if(recipes.isEmpty()){
-            drawStringCenteredNoShadow(fr,"No recipes found :(" ,x+width/2,y+height/2,0xFF808080);
+            drawStringCenteredNoShadow(fr, I18n.getInstance().translateKey("guidebook.section.search.error.no_recipes") ,x+width/2,y+height/2,0xFF808080);
         }
         GuidebookSlot mouseOverSlot = null;
         for (GuidebookSlot slot : slots) {
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingPage.java b/src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingPage.java
index 3df44593a..b5d971905 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/smelting/SmeltingPage.java
@@ -17,6 +17,7 @@ import net.minecraft.core.data.registry.recipe.RecipeSymbol;
 import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryFurnace;
 import net.minecraft.core.entity.player.Player;
+import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.inventory.slot.Slot;
 import net.minecraft.client.gui.guidebook.GuidebookSlot;
 import org.lwjgl.input.Keyboard;
@@ -72,7 +73,7 @@ public class SmeltingPage
     @Override
     protected void renderForeground(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         if(recipes.isEmpty()){
-            drawStringCenteredNoShadow(fr,"No recipes found :(" ,x+width/2,y+height/2,0xFF808080);
+            drawStringCenteredNoShadow(fr, I18n.getInstance().translateKey("guidebook.section.search.error.no_recipes") ,x+width/2,y+height/2,0xFF808080);
         }
         GuidebookSlot mouseOverSlot = null;
         for (GuidebookSlot slot : slots) {
diff --git a/src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelPage.java b/src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelPage.java
index 442371d58..cc59a242f 100644
--- a/src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelPage.java
+++ b/src/main/java/net/minecraft/client/gui/guidebook/trommeling/TrommelPage.java
@@ -20,6 +20,7 @@ import net.minecraft.core.data.registry.recipe.SearchQuery;
 import net.minecraft.core.data.registry.recipe.entry.RecipeEntryTrommel;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.lang.I18n;
 import net.minecraft.core.player.inventory.slot.Slot;
 import net.minecraft.client.gui.guidebook.GuidebookSlot;
 import org.lwjgl.input.Keyboard;
@@ -121,7 +122,7 @@ public class TrommelPage
     @Override
     protected void renderForeground(TextureManager re, Font fr, int x, int y, int mouseX, int mouseY, float partialTicks) {
         if(recipes.isEmpty()){
-            drawStringCenteredNoShadow(fr,"No recipes found :(" ,x+width/2,y+height/2,0xFF808080);
+            drawStringCenteredNoShadow(fr, I18n.getInstance().translateKey("guidebook.section.search.error.no_recipes") ,x+width/2,y+height/2,0xFF808080);
         }
         GuidebookSlot mouseOverSlot = null;
         for (GuidebookSlot slot : slots) {
diff --git a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/NoteFXEntry.java b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/NoteFXEntry.java
index 4eddd1569..2fd5d5a61 100644
--- a/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/NoteFXEntry.java
+++ b/src/main/java/net/minecraft/client/gui/modelviewer/categories/entries/particle/NoteFXEntry.java
@@ -34,7 +34,7 @@ public class NoteFXEntry extends ParticleEntry{
 
     @Override
     public void spawnParticle(Minecraft mc, World world, double x, double y, double z) {
-        mc.particleEngine.add(new NoteParticle(world, x, y, z, (double) note / 24D, 0.0D, 0.0D));
+        mc.particleEngine.add(new NoteParticle(world, x, y, z, 0.0, 0.0D, 0.0D, note));
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/client/render/RenderGlobal.java b/src/main/java/net/minecraft/client/render/RenderGlobal.java
index c17ab72bd..60ad6400f 100644
--- a/src/main/java/net/minecraft/client/render/RenderGlobal.java
+++ b/src/main/java/net/minecraft/client/render/RenderGlobal.java
@@ -74,7 +74,7 @@ public class RenderGlobal
     public static IconCoordinate[] breakingAnimation = new IconCoordinate[10];
     static {
         for (int i = 0; i < breakingAnimation.length; i++) {
-            breakingAnimation[i] = TextureRegistry.getTexture("minecraft:block/breaking_" + i);
+            breakingAnimation[i] = TextureRegistry.getTexture("minecraft:block/breaking/" + i);
         }
     }
     public static final int RENDER_CHUNK_SIZE = 16;
diff --git a/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
index 6727df9be..6ed2a42b9 100644
--- a/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
@@ -101,6 +101,7 @@ public class BlockModelDispatcher
         addDispatch(new StandardBlockModel<>(Blocks.BRICK_STONE).withTextures("minecraft:block/brick_stone"));
         addDispatch(new StandardBlockModel<>(Blocks.BRICK_PERMAFROST).withTextures("minecraft:block/brick_permafrost"));
         addDispatch(new StandardBlockModel<>(Blocks.BRICK_IRON).withTextures("minecraft:block/brick_iron"));
+        addDispatch(new StandardBlockModel<>(Blocks.BRICK_STEEL).withTextures("minecraft:block/brick_steel"));
 
         addDispatch(new SlabBlockModel<>(Blocks.SLAB_PLANKS_OAK));
         addDispatch(new SlabBlockModel<>(Blocks.SLAB_COBBLE_STONE));
diff --git a/src/main/java/net/minecraft/client/render/block/model/PaintedDoorBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/PaintedDoorBlockModel.java
index 9ed8bf4c1..790e71498 100644
--- a/src/main/java/net/minecraft/client/render/block/model/PaintedDoorBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/PaintedDoorBlockModel.java
@@ -17,7 +17,7 @@ public class PaintedDoorBlockModel<T extends DoorBlock> extends DoorBlockModel<T
         for (DyeColor c : DyeColor.blockOrderedColors()){
             doorTopTextures[c.blockMeta] = TextureRegistry.getTexture("minecraft:block/door/planks_" + c.colorID + "/top");
             doorBottomTextures[c.blockMeta] = TextureRegistry.getTexture("minecraft:block/door/planks_" + c.colorID + "/bottom");
-            doorBottomTextures[c.blockMeta] = TextureRegistry.getTexture("minecraft:block/door/planks_" + c.colorID + "/frame_top");
+            frameTopTextures[c.blockMeta] = TextureRegistry.getTexture("minecraft:block/door/planks_" + c.colorID + "/frame_top");
         }
     }
     private final boolean isTop;
diff --git a/src/main/java/net/minecraft/client/render/block/model/RedstonePumpkinBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/RedstonePumpkinBlockModel.java
index 4e0b56ceb..343e27387 100644
--- a/src/main/java/net/minecraft/client/render/block/model/RedstonePumpkinBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/RedstonePumpkinBlockModel.java
@@ -7,7 +7,7 @@ import net.minecraft.core.block.RedstonePumpkinBlock;
 import net.minecraft.core.util.helper.Side;
 
 public class RedstonePumpkinBlockModel extends HorizontalRotationBlockModel<RedstonePumpkinBlock> {
-    protected IconCoordinate overlay = TextureRegistry.getTexture("minecraft:block/pumpkin_redstone_overlay");
+    protected IconCoordinate overlay = TextureRegistry.getTexture("minecraft:block/pumpkin_redstone/front_overlay");
     public RedstonePumpkinBlockModel(Block block) {
         super(block);
     }
diff --git a/src/main/java/net/minecraft/client/sound/NamedSoundRepository.java b/src/main/java/net/minecraft/client/sound/NamedSoundRepository.java
index 173e5796d..3e72839e8 100644
--- a/src/main/java/net/minecraft/client/sound/NamedSoundRepository.java
+++ b/src/main/java/net/minecraft/client/sound/NamedSoundRepository.java
@@ -55,7 +55,12 @@ public class NamedSoundRepository extends Registry<SoundEvent> {
                     try {
                         entry.file.getParentFile().mkdirs();
                         entry.file.createNewFile();
-                        StreamUtils.transferDataAndClose(entry.pack.getResourceAsStream(String.format(JAR_SOUNDS_LOCATION_FORMAT, namespace) + entry.name), Files.newOutputStream(entry.file.toPath()));
+                        InputStream in = entry.pack.getResourceAsStream(String.format(JAR_SOUNDS_LOCATION_FORMAT, namespace) + entry.name);
+                        if (in == null) {
+                            thrown.add(new RuntimeException("Could not find data for entry '" + String.format(JAR_SOUNDS_LOCATION_FORMAT, namespace) + entry.name + "'! Unable to copy data!"));
+                            continue;
+                        }
+                        StreamUtils.transferDataAndClose(in, Files.newOutputStream(entry.file.toPath()));
                     } catch (Exception ex) {
                         thrown.add(new RuntimeException("Failed to relocate entry '" + entry.name + "' to '" + entry.file + "'!", ex));
                     }
diff --git a/src/main/java/net/minecraft/core/block/Blocks.java b/src/main/java/net/minecraft/core/block/Blocks.java
index 1b9dd2b76..bb0dec3aa 100644
--- a/src/main/java/net/minecraft/core/block/Blocks.java
+++ b/src/main/java/net/minecraft/core/block/Blocks.java
@@ -92,6 +92,7 @@ public final class Blocks {
     public static Block BRICK_STONE;
     public static Block BRICK_PERMAFROST;
     public static Block BRICK_IRON;
+    public static Block BRICK_STEEL;
 
     public static Block SLAB_PLANKS_OAK;
     public static Block SLAB_COBBLE_STONE;
@@ -485,17 +486,17 @@ public final class Blocks {
         PERMAFROST = new StoneBlock("permafrost", "minecraft:block/permafrost", 7, () -> Blocks.COBBLE_PERMAFROST, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.CAVES_CUT_THROUGH, BlockTags.MINEABLE_BY_PICKAXE);
 
-        COBBLE_STONE = new Block("cobble.stone", "minecraft:block/cobble_stone", 10, Material.stone).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_STONE = new CobbleBlock("cobble.stone", "minecraft:block/cobble_stone", 10, Material.stone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_STONE_MOSSY = new Block("cobble.stone.mossy", "minecraft:block/cobble_stone_mossy", 11, Material.stone).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_STONE_MOSSY = new CobbleBlock("cobble.stone.mossy", "minecraft:block/cobble_stone_mossy", 11, Material.stone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_BASALT = new Block("cobble.basalt", "minecraft:block/cobble_basalt", 12, Material.basalt).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_BASALT = new CobbleBlock("cobble.basalt", "minecraft:block/cobble_basalt", 12, Material.basalt, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_LIMESTONE = new Block("cobble.limestone", "minecraft:block/cobble_limestone", 13, Material.limestone).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_LIMESTONE = new CobbleBlock("cobble.limestone", "minecraft:block/cobble_limestone", 13, Material.limestone, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_GRANITE = new Block("cobble.granite", "minecraft:block/cobble_granite", 14, Material.granite).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_GRANITE = new CobbleBlock("cobble.granite", "minecraft:block/cobble_granite", 14, Material.granite, () -> GRAVEL).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_PERMAFROST = new Block("cobble.permafrost", "minecraft:block/cobble_permafrost", 15, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(2.0F).withBlastResistance(10F)
+        COBBLE_PERMAFROST = new CobbleBlock("cobble.permafrost", "minecraft:block/cobble_permafrost", 15, Material.permafrost, () -> GRAVEL).withSound(BlockSounds.PERMAFROST).withHardness(2.0F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         STONE_POLISHED = new Block("stone.polished", "minecraft:block/stone_polished", 860, Material.stone).withSound(BlockSounds.STONE).withHardness(1.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
@@ -596,6 +597,8 @@ public final class Blocks {
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         BRICK_IRON = new Block("brick.iron", "minecraft:block/brick_iron", 133, Material.metal).withSound(BlockSounds.METAL).withHardness(5F).withBlastResistance(10F).withOverrideColor(MaterialColor.iron)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        BRICK_STEEL = new Block("brick.steel", "minecraft:block/brick_steel", 134, Material.metal).withSound(BlockSounds.METAL).withHardness(5F).withBlastResistance(2000F).withOverrideColor(MaterialColor.steel)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         SLAB_PLANKS_OAK = new PaintableSlabBlock(PLANKS_OAK, "minecraft:block/slab_planks_oak", 140).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_AXE);
@@ -930,7 +933,7 @@ public final class Blocks {
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         BLOCK_NETHER_COAL = new Block("block.nethercoal", "minecraft:block/block_nethercoal", 436, Material.netherrack).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        BLOCK_STEEL = new Block("block.steel", "minecraft:block/block_steel", 437, Material.metal).withSound(BlockSounds.METAL).withHardness(5F).withBlastResistance(2000F).withOverrideColor(MaterialColor.steel)
+        BLOCK_STEEL = new Block("block.steel", "minecraft:block/block_steel", 437, Material.steel).withSound(BlockSounds.METAL).withHardness(5F).withBlastResistance(2000F).withOverrideColor(MaterialColor.steel)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         BLOCK_QUARTZ = new Block("block.quartz", "minecraft:block/block_quartz", 438, Material.stone).withSound(BlockSounds.STONE).withHardness(3F).withBlastResistance(10F).withOverrideColor(MaterialColor.quartz)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
@@ -1010,7 +1013,7 @@ public final class Blocks {
         TRAPDOOR_PLANKS_PAINTED = new PaintedTrapDoorBlock("trapdoor.planks.oak.painted", "minecraft:block/trapdoor_planks_oak_painted", 573, Material.wood).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange()
             .setBlockItem((b) -> new PaintedBlockItem(b, true))
             .withTags(BlockTags.MINEABLE_BY_AXE);
-        TRAPDOOR_STEEL = new TrapDoorBlock("trapdoor.steel", "minecraft:block/trapdoor_steel", 574, Material.metal).withSound(BlockSounds.METAL).withHardness(5F).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel)
+        TRAPDOOR_STEEL = new TrapDoorBlock("trapdoor.steel", "minecraft:block/trapdoor_steel", 574, Material.metal).withSound(BlockSounds.METAL).withOverrideColor(MaterialColor.steel).withHardness(5F).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         TNT = new TNTBlock("tnt", "minecraft:block/tnt", 580).withSound(BlockSounds.GRASS).withHardness(0.0F);
@@ -1033,9 +1036,9 @@ public final class Blocks {
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
         DOOR_GLASS_TOP = new DoorBlock("door.glass.top", "minecraft:block/door_glass_top", 597, Material.glass, true, false, () -> Items.DOOR_GLASS).withSound(BlockSounds.GLASS).withHardness(0.3F).withDisabledNeighborNotifyOnMetadataChange().setStatParent(() -> DOOR_GLASS_BOTTOM)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        DOOR_STEEL_BOTTOM = new DoorBlock("door.steel.bottom", "minecraft:block/door_steel_bottom", 598, Material.metal, false, true, () -> Items.DOOR_STEEL).withSound(BlockSounds.METAL).withHardness(5F).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> Items.DOOR_STEEL)
+        DOOR_STEEL_BOTTOM = new DoorBlock("door.steel.bottom", "minecraft:block/door_steel_bottom", 598, Material.metal, false, true, () -> Items.DOOR_STEEL).withSound(BlockSounds.METAL).withHardness(5F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> Items.DOOR_STEEL)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
-        DOOR_STEEL_TOP = new DoorBlock("door.steel.top", "minecraft:block/door_steel_top", 599, Material.metal, true, true, () -> Items.DOOR_STEEL).withSound(BlockSounds.METAL).withHardness(5F).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> DOOR_STEEL_BOTTOM)
+        DOOR_STEEL_TOP = new DoorBlock("door.steel.top", "minecraft:block/door_steel_top", 599, Material.metal, true, true, () -> Items.DOOR_STEEL).withSound(BlockSounds.METAL).withHardness(5F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F).withDisabledNeighborNotifyOnMetadataChange().withOverrideColor(MaterialColor.steel).setStatParent(() -> DOOR_STEEL_BOTTOM)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
         MESH = new MeshBlock("mesh", "minecraft:block/mesh", 600).withSound(BlockSounds.METAL).withHardness(1.5F)
@@ -1145,11 +1148,11 @@ public final class Blocks {
         PUMPKIN_REDSTONE = new RedstonePumpkinBlock("pumpkin.redstone", "minecraft:block/pumpkin_redstone", 793).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange();
 
 
-        COBBLE_NETHERRACK = new Block("cobble.netherrack", "minecraft:block/cobble_netherrack", 800, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.4F)
+        COBBLE_NETHERRACK = new CobbleBlock("cobble.netherrack", "minecraft:block/cobble_netherrack", 800, Material.netherrack, null).withSound(BlockSounds.STONE).withHardness(0.4F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN, BlockTags.CAVES_CUT_THROUGH, BlockTags.NETHER_MOBS_SPAWN);
-        COBBLE_NETHERRACK_IGNEOUS = new Block("cobble.netherrack.igneous", "minecraft:block/cobble_netherrack_igneous", 801, Material.netherrack).withSound(BlockSounds.STONE).withHardness(1.25F).withBlastResistance(7F).withLightEmission(10)
+        COBBLE_NETHERRACK_IGNEOUS = new IgneousNetherrackBlock("cobble.netherrack.igneous", "minecraft:block/cobble_netherrack_igneous", 801).withSound(BlockSounds.STONE).withHardness(1.25F).withBlastResistance(7F).withLightEmission(10)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        COBBLE_NETHERRACK_MOSSY = new Block("cobble.netherrack.mossy", "minecraft:block/cobble_netherrack_mossy", 802, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.4F)
+        COBBLE_NETHERRACK_MOSSY = new CobbleBlock("cobble.netherrack.mossy", "minecraft:block/cobble_netherrack_mossy", 802, Material.netherrack, null).withSound(BlockSounds.STONE).withHardness(0.4F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN);
         NETHERRACK = new StoneBlock("netherrack", "minecraft:block/netherrack", 803, () -> Blocks.COBBLE_NETHERRACK, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.32F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN, BlockTags.CAVES_CUT_THROUGH, BlockTags.NETHER_MOBS_SPAWN);
@@ -1168,7 +1171,8 @@ public final class Blocks {
 
         SOULSAND = new SoulSandBlock("soulsand", "minecraft:block/soulsand", 810).withSound(BlockSounds.SAND).withHardness(0.5F).withOverrideColor(MaterialColor.paintedBrown)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.CAVES_CUT_THROUGH, BlockTags.NETHER_MOBS_SPAWN);
-        SOULSCHIST = new Block("soulschist", "minecraft:block/soulschist", 811, Material.stone).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F).withOverrideColor(MaterialColor.paintedBrown)
+        SOULSCHIST = new CobbleBlock("soulschist", "minecraft:block/soulschist", 811, Material.stone, () -> Blocks.SOULSAND).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F).withOverrideColor(MaterialColor.paintedBrown)
+
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NETHER_MOBS_SPAWN);
 
         GLOWSTONE = new GlowStoneBlock("glowstone", "minecraft:block/glowstone", 820, Material.stone).withSound(BlockSounds.GLASS).withHardness(0.3F).withLightEmission(1.0F).withOverrideColor(MaterialColor.paintedYellow)
@@ -1208,7 +1212,7 @@ public final class Blocks {
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.CHAINLINK_FENCES_CONNECT, BlockTags.CAN_HANG_OFF);
         FENCE_PAPER_WALL = new PaperWallFenceBlock("fence.paper_wall", "minecraft:block/fence_paper_wall", 891, Material.cloth).withSound(BlockSounds.CLOTH).withHardness(0.5F)
             .withTags(BlockTags.MINEABLE_BY_SHEARS, BlockTags.FENCES_CONNECT, BlockTags.CAN_HANG_OFF, BlockTags.MINEABLE_BY_AXE);
-        FENCE_STEEL = new SteelFenceBlock("fence.steel", "minecraft:block/fence_steel", 892, Material.metal).withSound(BlockSounds.METAL).withHardness(8F).withBlastResistance(2000F)
+        FENCE_STEEL = new SteelFenceBlock("fence.steel", "minecraft:block/fence_steel", 892, Material.metal).withSound(BlockSounds.METAL).withHardness(8F).withOverrideColor(MaterialColor.steel).withBlastResistance(2000F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.CHAINLINK_FENCES_CONNECT, BlockTags.CAN_HANG_OFF);
 
         BASKET = new BasketBlock("basket", "minecraft:block/basket", 900, Material.cloth).withSound(BlockSounds.CLOTH).withHardness(0.5F).withOverrideColor(MaterialColor.wood).setStatParent(() -> Items.BASKET)
diff --git a/src/main/java/net/minecraft/core/block/CoalOreBlock.java b/src/main/java/net/minecraft/core/block/CoalOreBlock.java
index cc31f1568..efdef2903 100644
--- a/src/main/java/net/minecraft/core/block/CoalOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/CoalOreBlock.java
@@ -32,6 +32,7 @@ public class CoalOreBlock extends Block
                 return new ItemStack[] { new ItemStack(this) };
             case EXPLOSION:
             case PROPER_TOOL:
+            case PISTON_CRUSH:
                 return new ItemStack[] { new ItemStack(Items.COAL) };
             default:
                 return null;
diff --git a/src/main/java/net/minecraft/core/block/CobbleBlock.java b/src/main/java/net/minecraft/core/block/CobbleBlock.java
new file mode 100644
index 000000000..a2c65846e
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/CobbleBlock.java
@@ -0,0 +1,26 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.entity.BlockEntity;
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.enums.EnumDropCause;
+import net.minecraft.core.item.IItemConvertible;
+import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.world.World;
+
+import java.util.function.Supplier;
+
+public class CobbleBlock extends Block{
+    private final Supplier<IItemConvertible> crushDrop;
+    public CobbleBlock(String translationKey, String namespaceId, int id, Material material, Supplier<IItemConvertible> crushResult) {
+        super(translationKey, namespaceId, id, material);
+        this.crushDrop = crushResult;
+    }
+
+    @Override
+    public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
+        if (crushDrop != null && dropCause == EnumDropCause.PISTON_CRUSH) {
+            return new ItemStack[] {new ItemStack(crushDrop.get())};
+        }
+        return super.getBreakResult(world, dropCause, meta, blockEntity);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/DiamondOreBlock.java b/src/main/java/net/minecraft/core/block/DiamondOreBlock.java
index 163ca568f..3a3ce7607 100644
--- a/src/main/java/net/minecraft/core/block/DiamondOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/DiamondOreBlock.java
@@ -32,6 +32,7 @@ public class DiamondOreBlock extends Block
                 return new ItemStack[] { new ItemStack(this) };
             case EXPLOSION:
             case PROPER_TOOL:
+            case PISTON_CRUSH:
                 return new ItemStack[] { new ItemStack(Items.DIAMOND) };
             default:
                 return null;
diff --git a/src/main/java/net/minecraft/core/block/DoorBlock.java b/src/main/java/net/minecraft/core/block/DoorBlock.java
index 2e635f4c8..db5e9d83a 100644
--- a/src/main/java/net/minecraft/core/block/DoorBlock.java
+++ b/src/main/java/net/minecraft/core/block/DoorBlock.java
@@ -146,7 +146,7 @@ public class DoorBlock extends Block implements IPaintable
     @Override
     public boolean onBlockRightClicked(World world, int x, int y, int z, @Nullable Player player, Side side, double xPlaced, double yPlaced)
     {
-        if(blockMaterial == Material.metal)
+        if(blockMaterial == Material.metal || blockMaterial == Material.steel)
         {
             return false;
         }
diff --git a/src/main/java/net/minecraft/core/block/FluidBlock.java b/src/main/java/net/minecraft/core/block/FluidBlock.java
index 500fd3601..e9a7cf6bf 100644
--- a/src/main/java/net/minecraft/core/block/FluidBlock.java
+++ b/src/main/java/net/minecraft/core/block/FluidBlock.java
@@ -9,6 +9,7 @@ import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.util.phys.Vec3;
+import net.minecraft.core.world.Dimension;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
@@ -265,7 +266,11 @@ public abstract class FluidBlock extends Block
                 int data = world.getBlockMetadata(x, y, z) & 0x0F;
                 if(data == 0)
                 {
-                    world.setBlockWithNotify(x, y, z, Blocks.OBSIDIAN.id);
+                    if (world.dimension == Dimension.NETHER) {
+                        world.setBlockWithNotify(x, y, z, Blocks.COBBLE_NETHERRACK_IGNEOUS.id);
+                    } else {
+                        world.setBlockWithNotify(x, y, z, Blocks.OBSIDIAN.id);
+                    }
                 }
                 else if(data <= 2)
                 {
diff --git a/src/main/java/net/minecraft/core/block/FurnaceBlock.java b/src/main/java/net/minecraft/core/block/FurnaceBlock.java
index 3a4f3b836..8928ba6da 100644
--- a/src/main/java/net/minecraft/core/block/FurnaceBlock.java
+++ b/src/main/java/net/minecraft/core/block/FurnaceBlock.java
@@ -40,6 +40,7 @@ public class FurnaceBlock extends RotatableEntityBlock
             case EXPLOSION:
             case PROPER_TOOL:
             case SILK_TOUCH:
+            case PISTON_CRUSH:
                 return new ItemStack[] { new ItemStack(Blocks.FURNACE_STONE_IDLE) };
             default:
                 return null;
diff --git a/src/main/java/net/minecraft/core/block/GoldOreBlock.java b/src/main/java/net/minecraft/core/block/GoldOreBlock.java
index 8464d5326..000ea2a6d 100644
--- a/src/main/java/net/minecraft/core/block/GoldOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/GoldOreBlock.java
@@ -29,6 +29,7 @@ public class GoldOreBlock extends Block {
                 return new ItemStack[] { new ItemStack(this) };
             case EXPLOSION:
             case PROPER_TOOL:
+            case PISTON_CRUSH:
                 return new ItemStack[] { new ItemStack(Items.ORE_RAW_GOLD) };
             default:
                 return null;
diff --git a/src/main/java/net/minecraft/core/block/GravelBlock.java b/src/main/java/net/minecraft/core/block/GravelBlock.java
index 8589720fe..3bbad9999 100644
--- a/src/main/java/net/minecraft/core/block/GravelBlock.java
+++ b/src/main/java/net/minecraft/core/block/GravelBlock.java
@@ -22,6 +22,8 @@ public class GravelBlock extends SandBlock
     {
         switch (dropCause)
         {
+            case PISTON_CRUSH:
+                return new ItemStack[] { new ItemStack(Blocks.SAND)};
             case PICK_BLOCK:
             case SILK_TOUCH:
                 return new ItemStack[] { new ItemStack(this) };
diff --git a/src/main/java/net/minecraft/core/block/IgneousNetherrackBlock.java b/src/main/java/net/minecraft/core/block/IgneousNetherrackBlock.java
new file mode 100644
index 000000000..0d017a1d8
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/IgneousNetherrackBlock.java
@@ -0,0 +1,67 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.entity.Entity;
+import net.minecraft.core.entity.ItemEntity;
+import net.minecraft.core.util.helper.Side;
+import net.minecraft.core.util.phys.AABB;
+import net.minecraft.core.world.World;
+import net.minecraft.core.world.WorldSource;
+
+import java.util.Random;
+
+public class IgneousNetherrackBlock extends Block{
+    public IgneousNetherrackBlock(String translationKey, String namespaceId, int id) {
+        super(translationKey, namespaceId, id, Material.netherrack);
+        setTicking(true);
+    }
+
+    @Override
+    public AABB getCollisionBoundingBoxFromPool(WorldSource world, int x, int y, int z)
+    {
+        float f = 0.125F;
+        return AABB.getTemporaryBB(x, y, z, x + 1, (float)(y + 1) - f, z + 1);
+    }
+
+    @Override
+    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
+    {
+        if (entity instanceof ItemEntity) return; // Don't burn items for this block
+        entity.fireHurt();
+    }
+
+    @Override
+    public int tickDelay() {
+        return 20;
+    }
+
+    @Override
+    public void onNeighborBlockChange(World world, int x, int y, int z, int blockId) {
+        world.scheduleBlockUpdate(x, y, z, id, tickDelay() + world.rand.nextInt(5) - world.rand.nextInt(5));
+    }
+
+    @Override
+    public void onBlockPlacedByWorld(World world, int x, int y, int z) {
+        world.scheduleBlockUpdate(x, y, z, id, tickDelay() + world.rand.nextInt(5) - world.rand.nextInt(5));
+    }
+
+    public boolean canMelt(World world, int x, int y, int z) {
+        boolean canMelt = false;
+        for (Side side : Side.sides) {
+            Block block = world.getBlock(x + side.getOffsetX(), y + side.getOffsetY(), z + side.getOffsetZ());
+            Material adjacentMaterial = block == null ? Material.air : block.blockMaterial;
+            if (adjacentMaterial == Material.water) {
+                return false;
+            }
+            canMelt |= adjacentMaterial == Material.lava;
+        }
+        return canMelt;
+    }
+
+    @Override
+    public void updateTick(World world, int x, int y, int z, Random rand) {
+        if (canMelt(world, x, y, z)) {
+            world.setBlockWithNotify(x, y, z, Blocks.FLUID_LAVA_FLOWING.id);
+        }
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/IronOreBlock.java b/src/main/java/net/minecraft/core/block/IronOreBlock.java
index a9828e0d7..a328886d6 100644
--- a/src/main/java/net/minecraft/core/block/IronOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/IronOreBlock.java
@@ -28,6 +28,7 @@ public class IronOreBlock extends Block
                 return new ItemStack[] { new ItemStack(this) };
             case EXPLOSION:
             case PROPER_TOOL:
+            case PISTON_CRUSH:
                 return new ItemStack[] { new ItemStack(Items.ORE_RAW_IRON) };
             default:
                 return null;
diff --git a/src/main/java/net/minecraft/core/block/LapisOreBlock.java b/src/main/java/net/minecraft/core/block/LapisOreBlock.java
index 3128dd791..dadb34398 100644
--- a/src/main/java/net/minecraft/core/block/LapisOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/LapisOreBlock.java
@@ -5,6 +5,7 @@ import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.block.material.Material;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.world.World;
 
 import java.util.HashMap;
@@ -29,7 +30,8 @@ public class LapisOreBlock extends Block
                 return new ItemStack[] { new ItemStack(this) };
             case EXPLOSION:
             case PROPER_TOOL:
-                return new ItemStack[] { new ItemStack(Items.DYE, 4 + world.rand.nextInt(5), 4) };
+            case PISTON_CRUSH:
+                return new ItemStack[] { new ItemStack(Items.DYE, 4 + world.rand.nextInt(5), DyeColor.BLUE.itemMeta) };
             default:
                 return null;
         }
diff --git a/src/main/java/net/minecraft/core/block/MotionSensorBlock.java b/src/main/java/net/minecraft/core/block/MotionSensorBlock.java
index a1a0153e4..294347af4 100644
--- a/src/main/java/net/minecraft/core/block/MotionSensorBlock.java
+++ b/src/main/java/net/minecraft/core/block/MotionSensorBlock.java
@@ -1,6 +1,7 @@
 
 package net.minecraft.core.block;
 
+import java.util.Objects;
 import java.util.Random;
 
 import net.minecraft.client.util.helper.Colors;
@@ -95,17 +96,10 @@ public class MotionSensorBlock extends VeryRotatableEntityBlock
 
     @Override
     public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, BlockEntity blockEntity) {
-        switch (dropCause)
-        {
-            case WORLD:
-            case EXPLOSION:
-            case PROPER_TOOL:
-            case PICK_BLOCK:
-            case SILK_TOUCH:
-                return new ItemStack[] { new ItemStack(Blocks.MOTION_SENSOR_IDLE) };
-            default:
-                return null;
+        if (dropCause == EnumDropCause.IMPROPER_TOOL) {
+            return null;
         }
+        return new ItemStack[]{new ItemStack(Blocks.MOTION_SENSOR_IDLE)};
     }
     
     public static Direction getFacingDirection(int meta) {
diff --git a/src/main/java/net/minecraft/core/block/NetherCoalOreBlock.java b/src/main/java/net/minecraft/core/block/NetherCoalOreBlock.java
index 3a6b0db94..3318f66fa 100644
--- a/src/main/java/net/minecraft/core/block/NetherCoalOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/NetherCoalOreBlock.java
@@ -25,6 +25,7 @@ public class NetherCoalOreBlock extends Block
                 return new ItemStack[] { new ItemStack(this) };
             case EXPLOSION:
             case PROPER_TOOL:
+            case PISTON_CRUSH:
                 return new ItemStack[] { new ItemStack(Items.NETHERCOAL) };
             default:
                 return null;
diff --git a/src/main/java/net/minecraft/core/block/NoteBlock.java b/src/main/java/net/minecraft/core/block/NoteBlock.java
index 90811c569..38ade223a 100644
--- a/src/main/java/net/minecraft/core/block/NoteBlock.java
+++ b/src/main/java/net/minecraft/core/block/NoteBlock.java
@@ -1,17 +1,28 @@
 package net.minecraft.core.block;
 
+import com.mojang.logging.LogUtils;
 import net.minecraft.core.block.entity.ActivatorBlockEntity;
 import net.minecraft.core.block.entity.BlockEntity;
-import net.minecraft.core.block.entity.NoteBlockEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import net.minecraft.core.block.material.Material;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.slf4j.Logger;
+
+import java.util.HashMap;
+import java.util.Map;
 
 public class NoteBlock extends EntityBlock
 {
+    private static final Logger LOGGER = LogUtils.getLogger();
+    public static final int MASK_NOTE = 0b0011_1111;
+    public static final int MASK_POWERED = 0b1000_0000;
+
+    public static final byte MAX_NOTE = 24;
 
     public NoteBlock(String key, String namespaceId, int id)
     {
@@ -21,85 +32,179 @@ public class NoteBlock extends EntityBlock
     @Override
 	public void onNeighborBlockChange(World world, int x, int y, int z, int blockId)
     {
-        if(blockId > 0 && Block.blocksList[blockId].isSignalSource())
+        boolean flag = world.hasNeighborSignal(x, y, z);
+        int data = world.getBlockMetadata(x, y, z);
+        if(isPowered(data) && !flag)
         {
-            boolean flag = world.hasDirectSignal(x, y, z);
-            NoteBlockEntity tileentitynote = (NoteBlockEntity)world.getBlockEntity(x, y, z);
-            if(tileentitynote.previousRedstoneState != flag)
-            {
-                if(flag)
-                {
-                    tileentitynote.triggerNote(world, x, y, z);
-                }
-                tileentitynote.previousRedstoneState = flag;
-            }
+            world.setBlockMetadata(x, y, z, setPowered(data, false));
+        } else if (!isPowered(data) && flag) {
+            triggerNote(world, x, y, z);
+            world.setBlockMetadata(x, y, z, setPowered(data, true));
         }
     }
 
     @Override
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced)
     {
-        if(world.isClientSide)
-        {
-            return true;
-        } else
-        {
-            NoteBlockEntity tileentitynote = (NoteBlockEntity)world.getBlockEntity(x, y, z);
-            tileentitynote.changePitch();
-            tileentitynote.triggerNote(world, x, y, z);
-            return true;
+        if (!world.isClientSide) {
+            changePitch(world, x, y, z);
+            triggerNote(world, x, y, z);
         }
+        return true;
     }
 
     @Override
     public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
-        NoteBlockEntity noteBlock = (NoteBlockEntity)world.getBlockEntity(x, y, z);
-        noteBlock.changePitch();
-        noteBlock.triggerNote(world, x, y, z);
+        changePitch(world, x, y, z);
+        triggerNote(world, x, y, z);
     }
 
     @Override
     public void onBlockLeftClicked(World world, int x, int y, int z, Player player, Side side, double xHit, double yHit)
     {
-        if(world.isClientSide)
-        {
-            return;
-        } else
-        {
-            NoteBlockEntity tileentitynote = (NoteBlockEntity)world.getBlockEntity(x, y, z);
-            tileentitynote.triggerNote(world, x, y, z);
+        if (!world.isClientSide) {
+            triggerNote(world, x, y, z);
+        }
+    }
+
+    public void changePitch(World world, int x, int y, int z) {
+        int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockMetadata(x, y, z, setNote(meta, (getNote(meta) + 1) % (MAX_NOTE + 1)));
+    }
+
+    public void triggerNote(World world, int x, int y, int z) {
+        if(world.isBlockOpaqueCube(x, y + 1, z)) {
             return;
         }
+        world.triggerEvent(x, y, z, Instrument.getInstrumentFromBlock(world.getBlock(x, y - 1, z)).index, getNote(world.getBlockMetadata(x, y, z)));
     }
 
-    @Override
-	protected BlockEntity getNewBlockEntity()
-    {
-        return new NoteBlockEntity();
+    public static int setNote(int data, int note) {
+        return (data & ~MASK_NOTE) | note & MASK_NOTE;
+    }
+
+    public static int getNote(int data) {
+        return data & MASK_NOTE;
+    }
+
+    public static boolean isPowered(int data) {
+        return (data & MASK_POWERED) != 0;
+    }
+
+    public static int setPowered(int data, boolean flag) {
+        if (flag) {
+            return data | MASK_POWERED;
+        } else {
+            return data & ~MASK_POWERED;
+        }
     }
 
     @Override
     public void triggerEvent(World world, int x, int y, int z, int index, int data)
     {
         float f = (float)Math.pow(2D, (double)(data - 12) / 12D);
-        String s = "harp";
-        if(index == 1)
-        {
-            s = "bd";
+        String s = Instrument.getInstrumentFromIndex(index).soundKey;
+        world.playSoundEffect(null, SoundCategory.WORLD_SOUNDS, (double) x + 0.5D, (double) y + 0.5D, (double) z + 0.5D, "note." + s, 3F, f);
+        world.spawnParticle("note", (double) x + 0.5D, (double) y + 1.2D, (double) z + 0.5D, 0.0, 0.0D, 0.0D, data);
+    }
+
+
+    // These below 2 methods are for Legacy noteblock entity support, do not delete them or terrible things will happen
+    @Override
+    public void onBlockPlacedByWorld(World world, int x, int y, int z)
+    {
+    }
+
+    @Override
+    protected BlockEntity getNewBlockEntity() {
+        return null;
+    }
+
+    public static class Instrument {
+        public static final Map<Integer, Instrument> instrumentMap = new HashMap<>();
+        public final int index;
+        public final String soundKey;
+
+        public Instrument(int index, String soundKey) {
+            this.index = index;
+            this.soundKey = soundKey;
+
+            assert !instrumentMap.containsKey(index) : "Only 1 instrument can be assigned per index!";
+            instrumentMap.put(index, this);
         }
-        if(index == 2)
-        {
-            s = "snare";
+
+        public static @NotNull Instrument getInstrumentFromIndex(int index) {
+            if (instrumentMap.containsKey(index)) return instrumentMap.get(index);
+            LOGGER.warn("No instrument assign to index '{}'!", index);
+            return instrumentMap.getOrDefault(index, DEFAULT);
         }
-        if(index == 3)
-        {
-            s = "hat";
+
+        public static @NotNull Instrument getInstrumentFromBlock(@Nullable Block block) {
+            if (block == null) return DEFAULT;
+
+            if (block == Blocks.BLOCK_OLIVINE) {
+                return CHIP_TRIANGLE;
+            }
+            if (block == Blocks.BLOCK_REDSTONE || block == Blocks.PUMPKIN_REDSTONE || block instanceof RedstoneOreBlock) { // Should be any block thats basically just redstone
+                return GUITAR_ELECTRIC;
+            }
+            if (block == Blocks.CHEST_PLANKS_OAK || block == Blocks.CHEST_PLANKS_OAK_PAINTED) {
+                return WOOD_BLOCK;
+            }
+
+            Material material = block.blockMaterial;
+            if (material == Material.permafrost || material == Material.ice) {
+                return CELESTA;
+            }
+            if(material.isStone()) {
+                return BD;
+            }
+            if(material == Material.sand) {
+                return SNARE;
+            }
+            if(material == Material.glass) {
+                return HAT;
+            }
+            if(material == Material.wood) {
+                return BASS_ATTACK;
+            }
+            if (material == Material.soulsand) {
+                return CHANT;
+            }
+            if (material == Material.steel) {
+                return DRUM_STEEL;
+            }
+
+            return DEFAULT;
         }
-        if(index == 4)
-        {
-            s = "bassattack";
+
+        public static Instrument DEFAULT;
+        public static final Instrument BD;
+        public static final Instrument SNARE;
+        public static final Instrument HAT;
+        public static final Instrument BASS_ATTACK;
+        public static final Instrument HARP;
+        public static final Instrument CHANT;
+        public static final Instrument DRUM_STEEL;
+        public static final Instrument CHIP_TRIANGLE;
+        public static final Instrument GUITAR_ELECTRIC;
+        public static final Instrument CELESTA;
+        public static final Instrument WOOD_BLOCK;
+
+        static {
+            HARP = new Instrument(0, "harp");
+            BD = new Instrument(1, "bd");
+            SNARE = new Instrument(2, "snare");
+            HAT = new Instrument(3, "hat");
+            BASS_ATTACK = new Instrument(4, "bassattack");
+            CHANT = new Instrument(5, "chant");
+            DRUM_STEEL = new Instrument(6, "drum_steel");
+            CHIP_TRIANGLE = new Instrument(7, "chip_triangle");
+            GUITAR_ELECTRIC = new Instrument(8, "guitar_electric");
+            CELESTA = new Instrument(9, "celesta");
+            WOOD_BLOCK = new Instrument(10, "wood_block");
+
+            DEFAULT = HARP;
         }
-        world.playSoundEffect(null, SoundCategory.WORLD_SOUNDS, (double) x + 0.5D, (double) y + 0.5D, (double) z + 0.5D, "note." + s, 3F, f);
-        world.spawnParticle("note", (double) x + 0.5D, (double) y + 1.2D, (double) z + 0.5D, (double) data / 24D, 0.0D, 0.0D, 0);
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/RedstoneOreBlock.java b/src/main/java/net/minecraft/core/block/RedstoneOreBlock.java
index 73f2ae871..0ff36d174 100644
--- a/src/main/java/net/minecraft/core/block/RedstoneOreBlock.java
+++ b/src/main/java/net/minecraft/core/block/RedstoneOreBlock.java
@@ -91,6 +91,7 @@ public class RedstoneOreBlock extends Block
                 return new ItemStack[] { new ItemStack(normalBlock.get()) };
             case EXPLOSION:
             case PROPER_TOOL:
+            case PISTON_CRUSH:
                 return new ItemStack[] { new ItemStack(Items.DUST_REDSTONE, 4 + world.rand.nextInt(2)) };
             default:
                 return null;
diff --git a/src/main/java/net/minecraft/core/block/SoulSandBlock.java b/src/main/java/net/minecraft/core/block/SoulSandBlock.java
index 756f9b62c..96596648c 100644
--- a/src/main/java/net/minecraft/core/block/SoulSandBlock.java
+++ b/src/main/java/net/minecraft/core/block/SoulSandBlock.java
@@ -16,7 +16,7 @@ public class SoulSandBlock extends Block
 
     public SoulSandBlock(String key, String namespaceId, int id)
     {
-        super(key, namespaceId, id, Material.sand);
+        super(key, namespaceId, id, Material.soulsand);
     }
 
     @Override
diff --git a/src/main/java/net/minecraft/core/block/StoneBlock.java b/src/main/java/net/minecraft/core/block/StoneBlock.java
index b0499e6df..b09f44511 100644
--- a/src/main/java/net/minecraft/core/block/StoneBlock.java
+++ b/src/main/java/net/minecraft/core/block/StoneBlock.java
@@ -52,6 +52,7 @@ public class StoneBlock extends Block {
 	{
 		switch (dropCause)
 		{
+			case PISTON_CRUSH:
 			case WORLD:
 			case EXPLOSION:
 			case PROPER_TOOL:
diff --git a/src/main/java/net/minecraft/core/block/TrapDoorBlock.java b/src/main/java/net/minecraft/core/block/TrapDoorBlock.java
index 1207293a9..91b9becea 100644
--- a/src/main/java/net/minecraft/core/block/TrapDoorBlock.java
+++ b/src/main/java/net/minecraft/core/block/TrapDoorBlock.java
@@ -104,7 +104,7 @@ public class TrapDoorBlock extends Block {
 
     @Override
     public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced) {
-        if (blockMaterial != Material.metal) {
+        if (blockMaterial != Material.metal && blockMaterial != Material.steel) {
             int l = world.getBlockMetadata(x, y, z);
             world.setBlockMetadataWithNotify(x, y, z, l ^ MASK_OPEN);
             world.playBlockEvent(player, LevelListener.EVENT_DOOR_SOUND, x, y, z, 0);
@@ -115,7 +115,7 @@ public class TrapDoorBlock extends Block {
 
     @Override
     public void onActivatorInteract(World world, int x, int y, int z, ActivatorBlockEntity activator, Direction direction) {
-        if (blockMaterial != Material.metal) {
+        if (blockMaterial != Material.metal && blockMaterial != Material.steel) {
             int l = world.getBlockMetadata(x, y, z);
             world.setBlockMetadataWithNotify(x, y, z, l ^ MASK_OPEN);
             world.playBlockEvent(null, LevelListener.EVENT_DOOR_SOUND, x, y, z, 0);
diff --git a/src/main/java/net/minecraft/core/block/entity/BlockEntity.java b/src/main/java/net/minecraft/core/block/entity/BlockEntity.java
index c98efbf41..ee82ac748 100644
--- a/src/main/java/net/minecraft/core/block/entity/BlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/BlockEntity.java
@@ -178,7 +178,7 @@ public class BlockEntity implements ICarriable
         Block currentBlock = world.getBlock(x, y, z);
         int currentMeta = world.getBlockMetadata(x, y, z);
         world.removeBlockTileEntity(x, y, z);
-        world.setBlockRaw(x & 0b1111, y, z & 0b1111, 0);
+        world.setBlockRaw(x, y, z, 0);
         world.notifyBlockChange(x, y, z, 0);
         this.worldObj = null;
         this.carriedBlock = getCarriedEntry(world, holder, currentBlock, currentMeta);
diff --git a/src/main/java/net/minecraft/core/block/entity/NoteBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/NoteBlockEntity.java
index 734eafd2b..38dfb7b99 100644
--- a/src/main/java/net/minecraft/core/block/entity/NoteBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/NoteBlockEntity.java
@@ -1,79 +1,39 @@
 package net.minecraft.core.block.entity;
 
-
-// Referenced classes of package net.minecraft.src:
-//            BlockEntity, NBTTagCompound, World, Material
-
-import net.minecraft.core.block.material.Material;
+import net.minecraft.core.block.Blocks;
+import net.minecraft.core.block.NoteBlock;
 import com.mojang.nbt.CompoundTag;
-import net.minecraft.core.entity.Entity;
-import net.minecraft.core.world.World;
+import net.minecraft.core.util.helper.MathHelper;
 
+@Deprecated
 public class NoteBlockEntity extends BlockEntity
 {
 
-    public NoteBlockEntity()
-    {
-        note = 0;
-        previousRedstoneState = false;
-    }
 
-    @Override
-	public void writeToNBT(CompoundTag nbttagcompound)
-    {
-        super.writeToNBT(nbttagcompound);
-        nbttagcompound.putByte("note", note);
+    public byte note;
+
+    public NoteBlockEntity() {
+        note = 0;
     }
 
     @Override
-	public void readFromNBT(CompoundTag nbttagcompound)
-    {
-        super.readFromNBT(nbttagcompound);
-        note = nbttagcompound.getByte("note");
-        if(note < 0)
-        {
-            note = 0;
-        }
-        if(note > 24)
-        {
-            note = 24;
+    public void tick() {
+        if (worldObj.getBlock(x, y, z) == Blocks.NOTEBLOCK) { // Set note block pitch
+            worldObj.setBlockMetadata(x, y, z, NoteBlock.setNote(0, note));
         }
+        invalidate(); // Delete self
     }
 
-    public void changePitch()
-    {
-        note = (byte)((note + 1) % 25);
-        setChanged();
+    @Override
+	public void writeToNBT(CompoundTag tag) {
+        super.writeToNBT(tag);
+        tag.putByte("note", note);
     }
 
-    public void triggerNote(World world, int x, int y, int z)
-    {
-        if(world.isBlockOpaqueCube(x, y + 1, z))
-        {
-            return;
-        }
-        Material material = world.getBlockMaterial(x, y - 1, z);
-        byte noteIndex = 0;
-        if(material.isStone())
-        {
-            noteIndex = 1;
-        }
-        if(material == Material.sand)
-        {
-            noteIndex = 2;
-        }
-        if(material == Material.glass)
-        {
-            noteIndex = 3;
-        }
-        if(material == Material.wood)
-        {
-            noteIndex = 4;
-        }
-        world.triggerEvent(x, y, z, noteIndex, note);
+    @Override
+	public void readFromNBT(CompoundTag tag) {
+        super.readFromNBT(tag);
+        note = MathHelper.clamp(tag.getByte("note"), (byte) 0, NoteBlock.MAX_NOTE);
     }
 
-    public byte note;
-    public boolean previousRedstoneState;
-
 }
diff --git a/src/main/java/net/minecraft/core/block/material/Material.java b/src/main/java/net/minecraft/core/block/material/Material.java
index e393e9cda..7797f31d0 100644
--- a/src/main/java/net/minecraft/core/block/material/Material.java
+++ b/src/main/java/net/minecraft/core/block/material/Material.java
@@ -144,6 +144,7 @@ public class Material
     public static final Material netherrack = new Material(MaterialColor.netherrack).setConductivity(LIGHTNING_LIGHT_INSULATOR).setAsStone().notAlwaysDestroyable();
 
     public static final Material metal = new Material(MaterialColor.metal).setConductivity(LIGHTNING_STRONG_CONDUCTOR).notAlwaysDestroyable();
+    public static final Material steel = new Material(MaterialColor.steel).setConductivity(LIGHTNING_STRONG_CONDUCTOR).notAlwaysDestroyable();
     public static final Material water = new LiquidMaterial(MaterialColor.water).setConductivity(LIGHTNING_LIGHT_CONDUCTOR).destroyOnPush();
     public static final Material lava = new LiquidMaterial(MaterialColor.fire).destroyOnPush();
     public static final Material leaves = new Material(MaterialColor.plant).flammable().notSolidBlocking().destroyOnPush();
@@ -152,6 +153,7 @@ public class Material
     public static final Material cloth = new Material(MaterialColor.wool).flammable();
     public static final Material fire = new GasMaterial(MaterialColor.none).destroyOnPush();
     public static final Material sand = new Material(MaterialColor.sand);
+    public static final Material soulsand = new Material(MaterialColor.paintedBrown);
     public static final Material decoration = new DecorationMaterial(MaterialColor.none).destroyOnPush();
     public static final Material glass = new Material(MaterialColor.none).setConductivity(LIGHTNING_STRONG_INSULATOR).notSolidBlocking();
     public static final Material explosive = new Material(MaterialColor.fire).flammable().notSolidBlocking();
diff --git a/src/main/java/net/minecraft/core/block/piston/SteelPistonBaseBlock.java b/src/main/java/net/minecraft/core/block/piston/SteelPistonBaseBlock.java
index 125b9c0be..a9b82a586 100644
--- a/src/main/java/net/minecraft/core/block/piston/SteelPistonBaseBlock.java
+++ b/src/main/java/net/minecraft/core/block/piston/SteelPistonBaseBlock.java
@@ -7,9 +7,11 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.FallingBlockEntity;
+import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.util.helper.Direction;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.world.IVehicle;
+import net.minecraft.core.world.LevelListener;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
@@ -115,6 +117,19 @@ public class SteelPistonBaseBlock extends PistonBaseBlock{
         return true;
     }
 
+    @Override
+    public boolean tryCrush(World world, int x, int y, int z, Direction direction) {
+        int x2 = x + direction.getOffsetX();
+        int y2 = y + direction.getOffsetY();
+        int z2 = z + direction.getOffsetZ();
+        Block block = world.getBlock(x2, y2, z2);
+        if (block == null) return true;
+        world.playBlockEvent(null, LevelListener.EVENT_BLOCK_BREAK, x2, y2, z2, world.getBlockId(x2, y2, z2));
+        block.dropBlockWithCause(world, EnumDropCause.PISTON_CRUSH, x2, y2, z2, world.getBlockMetadata(x2, y2, z2), null, null);
+        world.setBlockWithNotify(x2, y2, z2, 0);
+        return true;
+    }
+
     @Override
     public void extendEvent(World world, int x, int y, int z, int data, Direction direction) {
         List<Entity> entityList = new ArrayList<>(world.getEntitiesWithinAABBExcludingEntity(null, AABB.getTemporaryBB((double)x + direction.getOffsetX(), (double)y + direction.getOffsetY(), (double)z + direction.getOffsetZ(), (double)x + direction.getOffsetX() + 1, (double)y + direction.getOffsetY() + 1, (double)z + direction.getOffsetZ() + 1)));
diff --git a/src/main/java/net/minecraft/core/data/registry/Registries.java b/src/main/java/net/minecraft/core/data/registry/Registries.java
index 165da3f22..2540a7826 100644
--- a/src/main/java/net/minecraft/core/data/registry/Registries.java
+++ b/src/main/java/net/minecraft/core/data/registry/Registries.java
@@ -74,12 +74,12 @@ public class Registries extends Registry<Registry<?>>
         ITEM_GROUPS.register("minecraft:moss_stones",stackListOf(Blocks.MOSS_STONE, Blocks.MOSS_BASALT, Blocks.MOSS_LIMESTONE, Blocks.MOSS_GRANITE));
         ITEM_GROUPS.register("minecraft:logs",stackListOf(Blocks.LOG_OAK, Blocks.LOG_PINE, Blocks.LOG_BIRCH, Blocks.LOG_CHERRY, Blocks.LOG_EUCALYPTUS, Blocks.LOG_OAK_MOSSY, Blocks.LOG_THORN, Blocks.LOG_PALM));
         ITEM_GROUPS.register("minecraft:leaves",stackListOf(Blocks.LEAVES_OAK, Blocks.LEAVES_OAK_RETRO, Blocks.LEAVES_PINE, Blocks.LEAVES_BIRCH, Blocks.LEAVES_CHERRY, Blocks.LEAVES_EUCALYPTUS, Blocks.LEAVES_SHRUB));
-        ITEM_GROUPS.register("minecraft:coal_ores",stackListOf(Blocks.ORE_COAL_STONE, Blocks.ORE_COAL_BASALT, Blocks.ORE_COAL_LIMESTONE, Blocks.ORE_COAL_GRANITE));
-        ITEM_GROUPS.register("minecraft:iron_ores",stackListOf(Blocks.ORE_IRON_STONE, Blocks.ORE_IRON_BASALT, Blocks.ORE_IRON_LIMESTONE, Blocks.ORE_IRON_GRANITE));
-        ITEM_GROUPS.register("minecraft:gold_ores",stackListOf(Blocks.ORE_GOLD_STONE, Blocks.ORE_GOLD_BASALT, Blocks.ORE_GOLD_LIMESTONE, Blocks.ORE_GOLD_GRANITE));
-        ITEM_GROUPS.register("minecraft:lapis_ores",stackListOf(Blocks.ORE_LAPIS_STONE, Blocks.ORE_LAPIS_BASALT, Blocks.ORE_LAPIS_LIMESTONE, Blocks.ORE_LAPIS_GRANITE));
-        ITEM_GROUPS.register("minecraft:redstone_ores",stackListOf(Blocks.ORE_REDSTONE_STONE, Blocks.ORE_REDSTONE_BASALT, Blocks.ORE_REDSTONE_LIMESTONE, Blocks.ORE_REDSTONE_GRANITE, Blocks.ORE_REDSTONE_GLOWING_STONE, Blocks.ORE_REDSTONE_GLOWING_BASALT, Blocks.ORE_REDSTONE_GLOWING_LIMESTONE, Blocks.ORE_REDSTONE_GLOWING_GRANITE));
-        ITEM_GROUPS.register("minecraft:diamond_ores",stackListOf(Blocks.ORE_DIAMOND_STONE, Blocks.ORE_DIAMOND_BASALT, Blocks.ORE_DIAMOND_LIMESTONE, Blocks.ORE_DIAMOND_GRANITE));
+        ITEM_GROUPS.register("minecraft:coal_ores",stackListOf(Blocks.ORE_COAL_STONE, Blocks.ORE_COAL_BASALT, Blocks.ORE_COAL_LIMESTONE, Blocks.ORE_COAL_GRANITE, Blocks.ORE_COAL_PERMAFROST));
+        ITEM_GROUPS.register("minecraft:iron_ores",stackListOf(Blocks.ORE_IRON_STONE, Blocks.ORE_IRON_BASALT, Blocks.ORE_IRON_LIMESTONE, Blocks.ORE_IRON_GRANITE, Blocks.ORE_IRON_PERMAFROST));
+        ITEM_GROUPS.register("minecraft:gold_ores",stackListOf(Blocks.ORE_GOLD_STONE, Blocks.ORE_GOLD_BASALT, Blocks.ORE_GOLD_LIMESTONE, Blocks.ORE_GOLD_GRANITE, Blocks.ORE_GOLD_PERMAFROST));
+        ITEM_GROUPS.register("minecraft:lapis_ores",stackListOf(Blocks.ORE_LAPIS_STONE, Blocks.ORE_LAPIS_BASALT, Blocks.ORE_LAPIS_LIMESTONE, Blocks.ORE_LAPIS_GRANITE, Blocks.ORE_LAPIS_PERMAFROST));
+        ITEM_GROUPS.register("minecraft:redstone_ores",stackListOf(Blocks.ORE_REDSTONE_STONE, Blocks.ORE_REDSTONE_BASALT, Blocks.ORE_REDSTONE_LIMESTONE, Blocks.ORE_REDSTONE_GRANITE, Blocks.ORE_REDSTONE_PERMAFROST, Blocks.ORE_REDSTONE_GLOWING_STONE, Blocks.ORE_REDSTONE_GLOWING_BASALT, Blocks.ORE_REDSTONE_GLOWING_LIMESTONE, Blocks.ORE_REDSTONE_GLOWING_GRANITE, Blocks.ORE_REDSTONE_GLOWING_PERMAFROST));
+        ITEM_GROUPS.register("minecraft:diamond_ores",stackListOf(Blocks.ORE_DIAMOND_STONE, Blocks.ORE_DIAMOND_BASALT, Blocks.ORE_DIAMOND_LIMESTONE, Blocks.ORE_DIAMOND_GRANITE, Blocks.ORE_DIAMOND_PERMAFROST));
         ITEM_GROUPS.register("minecraft:nethercoal_ores", stackListOf(Blocks.ORE_NETHERCOAL_NETHERRACK));
         {
             List<ItemStack> plankStackList = new ArrayList<>();
diff --git a/src/main/java/net/minecraft/core/entity/Entity.java b/src/main/java/net/minecraft/core/entity/Entity.java
index cfab3ca98..db8f2bf61 100644
--- a/src/main/java/net/minecraft/core/entity/Entity.java
+++ b/src/main/java/net/minecraft/core/entity/Entity.java
@@ -383,7 +383,6 @@ public abstract class Entity
             remainingFireTicks = 300;
             maxFireTicks = remainingFireTicks;
         }
-        
     }
 
     public void outOfWorld()
diff --git a/src/main/java/net/minecraft/core/entity/animal/WolfMob.java b/src/main/java/net/minecraft/core/entity/animal/WolfMob.java
index dceeb8b99..2d8d8d53b 100644
--- a/src/main/java/net/minecraft/core/entity/animal/WolfMob.java
+++ b/src/main/java/net/minecraft/core/entity/animal/WolfMob.java
@@ -679,6 +679,30 @@ public class WolfMob extends Animal
         super.damageEntity(newDamage, damageType);
     }
 
+    public void lavaHurt()
+    {
+        if(!fireImmune)
+        {
+            float protection = 1.0f - getArmorMaterial().getProtection(DamageType.FIRE);
+            protection = Math.max(protection, 0.01f);
+            hurt(null, 4, DamageType.FIRE);
+            remainingFireTicks = (int) (80 + 520 * protection);
+            maxFireTicks = remainingFireTicks;
+        }
+    }
+
+    public void fireHurt()
+    {
+        if(!fireImmune)
+        {
+            float protection = 1.0f - getArmorMaterial().getProtection(DamageType.FIRE);
+            protection = Math.max(protection, 0.01f);
+            hurt(null, 1, DamageType.FIRE);
+            remainingFireTicks = (int) (40 + 260 * protection);
+            maxFireTicks = remainingFireTicks;
+        }
+    }
+
     @Override
 	public boolean interact(Player entityplayer)
     {
diff --git a/src/main/java/net/minecraft/core/entity/player/Player.java b/src/main/java/net/minecraft/core/entity/player/Player.java
index f2ac316d3..5f539bfbb 100644
--- a/src/main/java/net/minecraft/core/entity/player/Player.java
+++ b/src/main/java/net/minecraft/core/entity/player/Player.java
@@ -962,6 +962,30 @@ public abstract class Player extends Mob
     	
         super.damageEntity(newDamage, damageType);
     }
+
+    public void lavaHurt()
+    {
+        if(!fireImmune)
+        {
+            float protection = 1.0f - inventory.getTotalProtectionAmount(DamageType.FIRE);
+            protection = Math.max(protection, 0.01f);
+            hurt(null, 4, DamageType.FIRE);
+            remainingFireTicks = (int) (80 + 520 * protection);
+            maxFireTicks = remainingFireTicks;
+        }
+    }
+
+    public void fireHurt()
+    {
+        if(!fireImmune)
+        {
+            float protection = 1.0f - inventory.getTotalProtectionAmount(DamageType.FIRE);
+            protection = Math.max(protection, 0.01f);
+            hurt(null, 1, DamageType.FIRE);
+            remainingFireTicks = (int) (40 + 260 * protection);
+            maxFireTicks = remainingFireTicks;
+        }
+    }
     
     public void displayFurnaceScreen(FurnaceBlockEntity blockEntity)
     {
diff --git a/src/main/java/net/minecraft/core/enums/EnumDropCause.java b/src/main/java/net/minecraft/core/enums/EnumDropCause.java
index ce679d915..a55d5301b 100644
--- a/src/main/java/net/minecraft/core/enums/EnumDropCause.java
+++ b/src/main/java/net/minecraft/core/enums/EnumDropCause.java
@@ -7,5 +7,6 @@ public enum EnumDropCause
     SILK_TOUCH,
     PICK_BLOCK,
     IMPROPER_TOOL,
-    EXPLOSION
+    EXPLOSION,
+    PISTON_CRUSH;
 }
diff --git a/src/main/java/net/minecraft/core/util/helper/MathHelper.java b/src/main/java/net/minecraft/core/util/helper/MathHelper.java
index f757fa6ed..ec7b6ad36 100644
--- a/src/main/java/net/minecraft/core/util/helper/MathHelper.java
+++ b/src/main/java/net/minecraft/core/util/helper/MathHelper.java
@@ -96,6 +96,11 @@ public class MathHelper
         return Math.max(value, min);
     }
 
+    public static byte clamp(byte value, byte min, byte max) {
+        if(value > max) return max;
+        return (byte) Math.max(value, min);
+    }
+
     public static float lerp(float a, float b, float amount) {
         return a + ((b - a) * amount);
     }
diff --git a/src/main/java/net/minecraft/core/world/chunk/Chunk.java b/src/main/java/net/minecraft/core/world/chunk/Chunk.java
index c3d5908f1..117f63147 100644
--- a/src/main/java/net/minecraft/core/world/chunk/Chunk.java
+++ b/src/main/java/net/minecraft/core/world/chunk/Chunk.java
@@ -1,6 +1,7 @@
 package net.minecraft.core.world.chunk;
 
 import com.mojang.logging.LogUtils;
+import net.minecraft.core.block.Blocks;
 import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.util.helper.MathHelper;
@@ -535,7 +536,7 @@ public class Chunk
         blockEntity.x = xPosition * CHUNK_SIZE_X + x;
         blockEntity.y = y;
         blockEntity.z = zPosition * CHUNK_SIZE_Z + z;
-        if (getBlockID(x, y, z) == 0 || !(Block.blocksList[getBlockID(x, y, z)] instanceof EntityBlock))
+        if (!(Block.blocksList[getBlockID(x, y, z)] instanceof EntityBlock))
         {
             LOGGER.warn("Attempted to place a tile entity where there was no entity tile!");
             Thread.dumpStack();
diff --git a/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java b/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java
index 09baaa878..755f6fb77 100644
--- a/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java
+++ b/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java
@@ -735,6 +735,7 @@ class WorkbenchGenerator {
         bricks.addInput('X', Items.BRICK_CLAY).create("clay_bricks", new ItemStack(Blocks.BRICK_CLAY, stackSize));
         bricks.addInput('X', Items.INGOT_GOLD).create("golden_bricks", new ItemStack(Blocks.BRICK_GOLD, stackSize));
         bricks.addInput('X', Items.INGOT_IRON).create("iron_bricks", new ItemStack(Blocks.BRICK_IRON, stackSize));
+        bricks.addInput('X', Items.INGOT_STEEL).create("steel_bricks", new ItemStack(Blocks.BRICK_STEEL, stackSize));
         bricks.addInput('X', Items.DYE, DyeColor.BLUE.itemMeta).create("lapis_lazuli_bricks", new ItemStack(Blocks.BRICK_LAPIS, stackSize));
         bricks.addInput('X', Blocks.SANDSTONE).create("sandstone_bricks", new ItemStack(Blocks.BRICK_SANDSTONE, stackSize));
         bricks.addInput('X', Blocks.STONE).create("stone_bricks", new ItemStack(Blocks.BRICK_STONE, stackSize));
diff --git a/src/main/java/net/minecraft/server/entity/player/ServerPlayer.java b/src/main/java/net/minecraft/server/entity/player/ServerPlayer.java
index a554a441b..0b1b443c2 100644
--- a/src/main/java/net/minecraft/server/entity/player/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/entity/player/ServerPlayer.java
@@ -756,6 +756,11 @@ public class ServerPlayer extends Player implements ContainerListener {
 		playerNetServerHandler.sendPacket(new ChatPacket(message, 1, AES.keyChain.get(username)));
 	}
 
+    public void teleport(double x, double y, double z, float xr, float yr) {
+        playerNetServerHandler.teleportAndRotate(x, y, z, xr, yr);
+    }
+
+
     public ServerPacketHandler playerNetServerHandler;
     public MinecraftServer mcServer;
     public ServerPlayerController playerController;
diff --git a/src/main/java/net/minecraft/server/net/PlayerList.java b/src/main/java/net/minecraft/server/net/PlayerList.java
index b6211d6ea..a68b18056 100644
--- a/src/main/java/net/minecraft/server/net/PlayerList.java
+++ b/src/main/java/net/minecraft/server/net/PlayerList.java
@@ -222,7 +222,7 @@ public class PlayerList
             ChunkCoordinates chunkcoordinates1 = Player.getValidBedSpawnCoordinates(server.getDimensionWorld(previousPlayer.dimension), chunkcoordinates);
             if (chunkcoordinates1 != null)
             {
-                newPlayer.moveTo((float) chunkcoordinates1.x + 0.5F, (float) chunkcoordinates1.y + 0.1F, (float) chunkcoordinates1.z + 0.5F, 0.0F, 0.0F);
+                newPlayer.teleport((float) chunkcoordinates1.x + 0.5F, (float) chunkcoordinates1.y + 0.1F, (float) chunkcoordinates1.z + 0.5F, 0.0F, 0.0F);
                 newPlayer.setPlayerSpawnCoordinate(chunkcoordinates);
             }
             else
@@ -264,7 +264,7 @@ public class PlayerList
 
         x *= Dimension.getCoordScale(lastDim, newDim);
         z *= Dimension.getCoordScale(lastDim, newDim);
-        serverPlayer.moveTo(x, y, z, serverPlayer.yRot, serverPlayer.xRot);
+        serverPlayer.teleport(x, y, z, serverPlayer.yRot, serverPlayer.xRot);
         ChunkCoordinates newCoordinates = new ChunkCoordinates(MathHelper.floor(x), MathHelper.floor(y), MathHelper.floor(z));
         if (serverPlayer.dimensionEnterCoordinate != null) {
             double dx = serverPlayer.dimensionEnterCoordinate.x - x;
@@ -284,7 +284,7 @@ public class PlayerList
         if (serverPlayer.isAlive())
         {
             worldserver1.entityJoinedWorld(serverPlayer);
-            serverPlayer.moveTo(x, serverPlayer.y, z, serverPlayer.yRot, serverPlayer.xRot);
+            serverPlayer.teleport(x, serverPlayer.y, z, serverPlayer.yRot, serverPlayer.xRot);
             worldserver1.updateEntityWithOptionalForce(serverPlayer, false);
             if (generatePortal){
                 worldserver1.chunkProviderServer.chunkLoadOverride = true;
diff --git a/src/main/resources/assets/minecraft/textures/block/brick_steel.png b/src/main/resources/assets/minecraft/textures/block/brick_steel.png
new file mode 100644
index 000000000..80e4e606f
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/brick_steel.png differ
