diff --git a/src/common/resources/lang/en_US/item.lang b/src/common/resources/lang/en_US/item.lang
index 2f0bee17e..dbe4c551b 100644
--- a/src/common/resources/lang/en_US/item.lang
+++ b/src/common/resources/lang/en_US/item.lang
@@ -419,4 +419,7 @@ item.rope.name=Rope
 item.rope.desc=Strong enough to climb.
 
 item.wand.monster.name=Summoning Wand
-item.wand.monster.desc=A magical tool allowing the wielder to manifest living entities.
\ No newline at end of file
+item.wand.monster.desc=A magical tool allowing the wielder to manifest living entities.
+
+item.paintbrush.name=Paintbrush
+item.paintbrush.desc=Can be loaded with dye and used to paint blocks.
\ No newline at end of file
diff --git a/src/common/resources/lang/en_US/tile.lang b/src/common/resources/lang/en_US/tile.lang
index a0e516424..1375911da 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.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.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.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.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.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.netherrack.name=Netherrack
tile.netherrack.desc=Dark red rock that burns forever.
tile.netherrack.igneous.name=Igneous Netherrack
tile.netherrack.igneous.desc=Extreme heat has made this rock glow from inside.

tile.soulsand.name=Soul Sand
tile.soulsand.desc=Squishy brown sand that's tough to walk through.

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.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.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=Glass Top Door
tile.door.glass.top.desc=You shouldn't be seeing this.
tile.door.glass.bottom.name=Glass Bottom Door
tile.door.glass.bottom.desc=And that's not just because it's glass.

tile.door.steel.top.name=Steel Top Door
tile.door.steel.top.desc=How did you get this?!
tile.door.steel.bottom.name=Steel Bottom Door
tile.door.steel.bottom.desc=How did you get this?!

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.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.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.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.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.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.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/common/resources/recipes/furnace.json b/src/common/resources/recipes/furnace.json
index 12d94bae7..7077421b1 100644
--- a/src/common/resources/recipes/furnace.json
+++ b/src/common/resources/recipes/furnace.json
@@ -1,338 +1,354 @@
-[
-    {
-        "name": "minecraft:furnace/coal_ores_to_coal",
-        "type": "minecraft:smelting",
-        "input": {
-            "group": "minecraft:coal_ores"
-        },
-        "output": {
-            "id": 16391,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/gold_ores_to_gold_ingot",
-        "type": "minecraft:smelting",
-        "input": {
-            "group": "minecraft:gold_ores"
-        },
-        "output": {
-            "id": 16394,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/diamond_ores_to_diamond",
-        "type": "minecraft:smelting",
-        "input": {
-            "group": "minecraft:diamond_ores"
-        },
-        "output": {
-            "id": 16392,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/redstone_ores_to_redstone_dust",
-        "type": "minecraft:smelting",
-        "input": {
-            "group": "minecraft:redstone_ores"
-        },
-        "output": {
-            "id": 16459,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/lapis_ores_to_lapis_lazuli",
-        "type": "minecraft:smelting",
-        "input": {
-            "group": "minecraft:lapis_ores"
-        },
-        "output": {
-            "id": 16479,
-            "amount": 1,
-            "meta": 4
-        }
-    },
-    {
-        "name": "minecraft:furnace/nethercoal_ores_to_nethercoal",
-        "type": "minecraft:smelting",
-        "input": {
-            "group": "minecraft:nethercoal_ores"
-        },
-        "output": {
-            "id": 16488,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/sand_to_glass",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 250,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 190,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/porkchop_raw_to_porkchop_cooked",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 16447,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 16448,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/fish_raw_to_fish_cooked",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 16477,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 16478,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/cobble_stone_to_stone",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 10,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 1,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/cobble_basalt_to_basalt",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 12,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 2,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/cobble_limestone_to_limestone",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 13,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 3,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/cobble_granite_to_granite",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 14,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 4,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/clay_to_brick_clay",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 16465,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 16464,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/cactus_to_cactus_green",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 750,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 16479,
-            "amount": 1,
-            "meta": 2
-        }
-    },
-    {
-        "name": "minecraft:furnace/logs_to_charcoal",
-        "type": "minecraft:smelting",
-        "input": {
-            "group": "minecraft:logs"
-        },
-        "output": {
-            "id": 16391,
-            "amount": 1,
-            "meta": 1
-        }
-    },
-    {
-        "name": "minecraft:furnace/iron_ores_to_iron_ingot",
-        "type": "minecraft:smelting",
-        "input": {
-            "group": "minecraft:iron_ores"
-        },
-        "output": {
-            "id": 16393,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/sponge_wet_to_sponge_dry",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 231,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 230,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/raw_iron_to_iron_ingot",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 16511,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 16393,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/raw_gold_to_gold_ingot",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 16510,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 16394,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/mud_to_baked_mud",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 225,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 226,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/cobble_permafrost_to_permafrost",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 15,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 7,
-            "amount": 1,
-            "meta": 0
-        }
-    },
-    {
-        "name": "minecraft:furnace/block_sugarcane_to_block_sugarcane_baked",
-        "type": "minecraft:smelting",
-        "input": {
-            "stack": {
-                "id": 771,
-                "amount": 1,
-                "meta": 0
-            }
-        },
-        "output": {
-            "id": 772,
-            "amount": 1,
-            "meta": 0
-        }
-    }
+[
+    {
+        "name": "minecraft:furnace/coal_ores_to_coal",
+        "type": "minecraft:smelting",
+        "input": {
+            "group": "minecraft:coal_ores"
+        },
+        "output": {
+            "id": 16391,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/gold_ores_to_gold_ingot",
+        "type": "minecraft:smelting",
+        "input": {
+            "group": "minecraft:gold_ores"
+        },
+        "output": {
+            "id": 16394,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/diamond_ores_to_diamond",
+        "type": "minecraft:smelting",
+        "input": {
+            "group": "minecraft:diamond_ores"
+        },
+        "output": {
+            "id": 16392,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/redstone_ores_to_redstone_dust",
+        "type": "minecraft:smelting",
+        "input": {
+            "group": "minecraft:redstone_ores"
+        },
+        "output": {
+            "id": 16459,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/lapis_ores_to_lapis_lazuli",
+        "type": "minecraft:smelting",
+        "input": {
+            "group": "minecraft:lapis_ores"
+        },
+        "output": {
+            "id": 16479,
+            "amount": 1,
+            "meta": 4
+        }
+    },
+    {
+        "name": "minecraft:furnace/nethercoal_ores_to_nethercoal",
+        "type": "minecraft:smelting",
+        "input": {
+            "group": "minecraft:nethercoal_ores"
+        },
+        "output": {
+            "id": 16488,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/sand_to_glass",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 250,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 190,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/porkchop_raw_to_porkchop_cooked",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 16447,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 16448,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/fish_raw_to_fish_cooked",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 16477,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 16478,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/cobble_stone_to_stone",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 10,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 1,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/cobble_basalt_to_basalt",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 12,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 2,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/cobble_limestone_to_limestone",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 13,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 3,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/cobble_granite_to_granite",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 14,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 4,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/clay_to_brick_clay",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 16465,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 16464,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/cactus_to_cactus_green",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 750,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 16479,
+            "amount": 1,
+            "meta": 2
+        }
+    },
+    {
+        "name": "minecraft:furnace/logs_to_charcoal",
+        "type": "minecraft:smelting",
+        "input": {
+            "group": "minecraft:logs"
+        },
+        "output": {
+            "id": 16391,
+            "amount": 1,
+            "meta": 1
+        }
+    },
+    {
+        "name": "minecraft:furnace/iron_ores_to_iron_ingot",
+        "type": "minecraft:smelting",
+        "input": {
+            "group": "minecraft:iron_ores"
+        },
+        "output": {
+            "id": 16393,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/sponge_wet_to_sponge_dry",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 231,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 230,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/raw_iron_to_iron_ingot",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 16511,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 16393,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/raw_gold_to_gold_ingot",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 16510,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 16394,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/mud_to_baked_mud",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 225,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 226,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/cobble_permafrost_to_permafrost",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 15,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 7,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/block_sugarcane_to_block_sugarcane_baked",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 771,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 772,
+            "amount": 1,
+            "meta": 0
+        }
+    },
+    {
+        "name": "minecraft:furnace/cobble_netherrack_to_netherrack",
+        "type": "minecraft:smelting",
+        "input": {
+            "stack": {
+                "id": 800,
+                "amount": 1,
+                "meta": 0
+            }
+        },
+        "output": {
+            "id": 803,
+            "amount": 1,
+            "meta": 0
+        }
+    }
 ]
\ No newline at end of file
diff --git a/src/common/resources/recipes/workbench.json b/src/common/resources/recipes/workbench.json
index 50ed9f778..a1a8627be 100644
--- a/src/common/resources/recipes/workbench.json
+++ b/src/common/resources/recipes/workbench.json
@@ -11666,7 +11666,213 @@
       "meta": 0
     },
     "consumeContainers": true
+  },
+  {
+    "name": "minecraft:workbench/netherrack_to_polished_netherrack",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "#",
+      "#"
+    ],
+    "symbols": [
+      {
+        "symbol": "#",
+        "stack": {
+          "id": 803,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 866,
+      "amount": 2,
+      "meta": 0
+    },
+    "consumeContainers": true
+  },
+  {
+    "name": "minecraft:workbench/netherrack_brick_stairs",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "#  ",
+      "## ",
+      "###"
+    ],
+    "symbols": [
+      {
+        "symbol": "#",
+        "stack": {
+          "id": 804,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 809,
+      "amount": 6,
+      "meta": 0
+    },
+    "consumeContainers": true
+  },
+  {
+    "name": "minecraft:workbench/cobbled_netherrack_stairs",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "#  ",
+      "## ",
+      "###"
+    ],
+    "symbols": [
+      {
+        "symbol": "#",
+        "stack": {
+          "id": 800,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 808,
+      "amount": 6,
+      "meta": 0
+    },
+    "consumeContainers": true
+  },
+  {
+    "name": "minecraft:workbench/netherrack_brick_slab",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "###"
+    ],
+    "symbols": [
+      {
+        "symbol": "#",
+        "stack": {
+          "id": 804,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 807,
+      "amount": 6,
+      "meta": 0
+    },
+    "consumeContainers": true
+  },
+  {
+    "name": "minecraft:workbench/cobbled_netherrack_slab",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "###"
+    ],
+    "symbols": [
+      {
+        "symbol": "#",
+        "stack": {
+          "id": 800,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 806,
+      "amount": 6,
+      "meta": 0
+    },
+    "consumeContainers": true
+  },
+  {
+    "name": "minecraft:workbench/polished_netherrack_slab",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "###"
+    ],
+    "symbols": [
+      {
+        "symbol": "#",
+        "stack": {
+          "id": 866,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 805,
+      "amount": 6,
+      "meta": 0
+    },
+    "consumeContainers": true
+  },
+  {
+    "name": "minecraft:workbench/netherrack_bricks",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "##",
+      "##"
+    ],
+    "symbols": [
+      {
+        "symbol": "#",
+        "stack": {
+          "id": 803,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 804,
+      "amount": 4,
+      "meta": 0
+    },
+    "consumeContainers": true
+  },
+  {
+    "name": "minecraft:workbench/paintbrush",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "X",
+      "Y",
+      "Z"
+    ],
+    "symbols": [
+      {
+        "symbol": "X",
+        "stack": {
+          "id": 16416,
+          "amount": 1,
+          "meta": 0
+        }
+      },
+      {
+        "symbol": "Y",
+        "stack": {
+          "id": 16393,
+          "amount": 1,
+          "meta": 0
+        }
+      },
+      {
+        "symbol": "Z",
+        "stack": {
+          "id": 16408,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 16538,
+      "amount": 1,
+      "meta": 64
+    },
+    "consumeContainers": true
   }
-
-
 ]
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/client/entity/particle/FluidDripParticle.java b/src/main/java/net/minecraft/client/entity/particle/FluidDripParticle.java
new file mode 100644
index 000000000..8dccbafb5
--- /dev/null
+++ b/src/main/java/net/minecraft/client/entity/particle/FluidDripParticle.java
@@ -0,0 +1,117 @@
+package net.minecraft.client.entity.particle;
+
+import net.minecraft.client.render.LightmapHelper;
+import net.minecraft.client.render.ParticleEngine;
+import net.minecraft.client.render.tessellator.Tessellator;
+import net.minecraft.client.render.texture.stitcher.IconCoordinate;
+import net.minecraft.core.enums.LightLayer;
+import net.minecraft.core.util.helper.Color;
+import net.minecraft.core.util.helper.MathHelper;
+import net.minecraft.core.world.World;
+
+public class FluidDripParticle extends Particle
+{
+    float maxSize;
+    boolean fullBright;
+
+    public FluidDripParticle(final World world, final double x, final double y, final double z, int color, IconCoordinate texture)
+    {
+        super(world, x, y, z, 0.0, 0.0, 0.0);
+        tex = texture;
+        gravity = 0.125F;
+        size /= 4.0F;
+        maxSize = size;
+        size = 0F;
+        lifetime *= 16.0F;
+        yd = 0.0f;
+        xd = 0.0f;
+        zd = 0.0f;
+
+        rCol = Color.redFromInt(color)/255f;
+        gCol = Color.greenFromInt(color)/255f;
+        bCol = Color.blueFromInt(color)/255f;
+    }
+
+    @Override
+    public int getParticleTexture() {
+        return ParticleEngine.TERRAIN_TEXTURE;
+    }
+
+    @Override
+    public void tick()
+    {
+        xo = x;
+        yo = y;
+        zo = z;
+
+        if (age++ >= lifetime)
+        {
+            remove();
+        }
+
+        if (age < lifetime / 4)
+        {
+            final float particleProgress = age / (lifetime / 4.0f);
+            size = maxSize * particleProgress;
+            gravity = 0.0f;
+        }
+        else
+        {
+            gravity = 0.5f;
+            yd -= 0.04D * gravity;
+            move(xd, yd, zd);
+            if (onGround)
+            {
+                xd *= 0.7D;
+                zd *= 0.7D;
+            }
+        }
+    }
+
+    @Override
+    public void render(Tessellator t, float partialTick, double xOff, double yOff, double zOff, float xa, float ya, float za, float xa2, float za2) {
+        if (this.tex == null) return;
+        float u0 = (float) this.tex.getSubIconU((uo / 4f));
+        float u2 = (float) this.tex.getSubIconU((uo / 4f) + 0.25f);
+        float v0 = (float) this.tex.getSubIconV((vo / 4f));
+        float v2 = (float) this.tex.getSubIconV((vo / 4f) + 0.25f);
+        float r = 0.1F * this.size;
+        float x = (float)(this.xo + (this.x - this.xo) * partialTick - xOff);
+        float y = (float)(this.yo + (this.y - this.yo) * partialTick - yOff);
+        float z = (float)(this.zo + (this.z - this.zo) * partialTick - zOff);
+        float br = 1.0f;
+        if (LightmapHelper.isLightmapEnabled()) {
+            t.setLightmapCoord(getLightmapCoord(partialTick));
+        } else {
+            br = getBrightness(partialTick);
+        }
+        t.setColorOpaque_F(this.rCol * br, this.gCol * br, this.bCol * br);
+        t.addVertexWithUV(x - xa * r - xa2 * r, y - ya * r, z - za * r - za2 * r, u2, v2);
+        t.addVertexWithUV(x - xa * r + xa2 * r, y + ya * r, z - za * r + za2 * r, u2, v0);
+        t.addVertexWithUV(x + xa * r + xa2 * r, y + ya * r, z + za * r + za2 * r, u0, v0);
+        t.addVertexWithUV(x + xa * r - xa2 * r, y - ya * r, z + za * r - za2 * r, u0, v2);
+    }
+
+    public FluidDripParticle setFullBright() {
+        fullBright = true;
+        return this;
+    }
+
+    @Override
+    public float getBrightness(float partialTick) {
+        if (fullBright) return 1f;
+        return super.getBrightness(partialTick);
+    }
+
+    @Override
+    public int getLightmapCoord(float partialTick) {
+        if (fullBright) {
+            int blockX = MathHelper.floor(x);
+            double d = (bb.maxY - bb.minY) * 0.66D;
+            int blockY = MathHelper.floor((y - (double) heightOffset) + d);
+            int blockZ = MathHelper.floor(z);
+            return LightmapHelper.getOverbrightLightmapCoord(world.getSavedLightValue(LightLayer.Sky, blockX, blockY, blockZ));
+        }
+        return super.getLightmapCoord(partialTick);
+    }
+}
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 39dda81c3..4358d47a8 100644
--- a/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java
+++ b/src/main/java/net/minecraft/client/entity/particle/ParticleDispatcher.java
@@ -1,8 +1,11 @@
 package net.minecraft.client.entity.particle;
 
 import net.minecraft.client.Minecraft;
+import net.minecraft.client.render.block.color.BlockColorDispatcher;
+import net.minecraft.client.render.texture.stitcher.TextureRegistry;
 import net.minecraft.client.util.dispatch.Dispatcher;
 import net.minecraft.core.block.Block;
+import net.minecraft.core.block.Blocks;
 import net.minecraft.core.entity.animal.FireflyClusterMob;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.Items;
@@ -66,5 +69,10 @@ public final class ParticleDispatcher extends Dispatcher<String, ParticleLambda>
             }
             return null;
         });
+        addDispatch("dripWater", (world, x, y, z, motionX, motionY, motionZ, data) -> {
+            int color = BlockColorDispatcher.getInstance().getDispatch(Blocks.FLUID_WATER_STILL).getWorldColor(world, MathHelper.floor(x), MathHelper.floor(y), MathHelper.floor(z));
+            return new FluidDripParticle(world, x, y, z, color, TextureRegistry.getTexture("minecraft:block/water_flowing"));
+        });
+        addDispatch("dripLava", (world, x, y, z, motionX, motionY, motionZ, data) -> new FluidDripParticle(world, x, y, z, 0xFFFFFF, TextureRegistry.getTexture("minecraft:block/lava_flowing")).setFullBright());
     }
 }
diff --git a/src/main/java/net/minecraft/client/gui/MainMenuScreen.java b/src/main/java/net/minecraft/client/gui/MainMenuScreen.java
index 70e805cf0..54b361372 100644
--- a/src/main/java/net/minecraft/client/gui/MainMenuScreen.java
+++ b/src/main/java/net/minecraft/client/gui/MainMenuScreen.java
@@ -8,8 +8,6 @@ import java.io.InputStreamReader;
 import java.net.URI;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
 import java.util.List;
 import java.util.Random;
 
@@ -44,7 +42,7 @@ public class MainMenuScreen extends Screen
 
     private static final Block[] BLOCKS_TO_DRAW = {
     		Blocks.STONE, Blocks.DIRT, Blocks.PLANKS_OAK, Blocks.COBBLE_STONE, Blocks.COBBLE_STONE_MOSSY, Blocks.BASALT, Blocks.LIMESTONE,
-    		Blocks.GRANITE, Blocks.BRICK_CLAY, Blocks.ICE, Blocks.WOOL, Blocks.BLOCK_SNOW, Blocks.OBSIDIAN, Blocks.NETHERRACK
+    		Blocks.GRANITE, Blocks.BRICK_CLAY, Blocks.ICE, Blocks.WOOL, Blocks.BLOCK_SNOW, Blocks.OBSIDIAN, Blocks.COBBLE_NETHERRACK
     };
     private static String[] logoBlockLayers = null;
     
diff --git a/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPages.java b/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPages.java
index 232b0d142..7a59d1248 100644
--- a/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPages.java
+++ b/src/main/java/net/minecraft/client/gui/achievements/data/AchievementPages.java
@@ -19,7 +19,7 @@ public class AchievementPages {
         if (hasInit) return;
         hasInit = true;
         overworldPage = register(new OverworldPage("gui.achievements.page.overworld", Blocks.GRASS.getDefaultStack()));
-        netherPage = register(new NetherPage("gui.achievements.page.nether", Blocks.NETHERRACK.getDefaultStack()));
+        netherPage = register(new NetherPage("gui.achievements.page.nether", Blocks.COBBLE_NETHERRACK.getDefaultStack()));
     }
     static {
         Achievements.init();
diff --git a/src/main/java/net/minecraft/client/gui/achievements/pages/NetherPage.java b/src/main/java/net/minecraft/client/gui/achievements/pages/NetherPage.java
index 33cfda288..5b007311f 100644
--- a/src/main/java/net/minecraft/client/gui/achievements/pages/NetherPage.java
+++ b/src/main/java/net/minecraft/client/gui/achievements/pages/NetherPage.java
@@ -50,7 +50,7 @@ public class NetherPage extends AchievementPage {
         final int offsetY = tileY + random.nextInt(3) - random.nextInt(3);
 
         int r = random.nextInt(50);
-        IconCoordinate texture = getTextureFromBlock(Blocks.NETHERRACK);
+        IconCoordinate texture = getTextureFromBlock(Blocks.COBBLE_NETHERRACK);
         if (offsetY >= bedrockLayer) {
             texture = getTextureFromBlock(Blocks.BEDROCK);
         } else if (r < 10) {
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 4cc8d5591..8eff72ef9 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
@@ -55,6 +55,7 @@ public class BlockModelDispatcher
         addDispatch(new StandardBlockModel<>(Blocks.BASALT_POLISHED).withTextures("minecraft:block/polished_basalt_top", "minecraft:block/polished_basalt_side"));
         addDispatch(new StandardBlockModel<>(Blocks.SLATE_POLISHED).withTextures("minecraft:block/polished_slate_top", "minecraft:block/polished_slate_side"));
         addDispatch(new StandardBlockModel<>(Blocks.PERMAFROST_POLISHED).withTextures("minecraft:block/polished_permafrost_top", "minecraft:block/polished_permafrost_side"));
+        addDispatch(new StandardBlockModel<>(Blocks.NETHERRACK_POLISHED).withTextures("minecraft:block/polished_netherrack_top", "minecraft:block/polished_netherrack_side"));
 
         addDispatch(new AxisAlignedBlockModel<>(Blocks.PILLAR_MARBLE).withTextures("minecraft:block/pillar_marble_top", "minecraft:block/pillar_marble_side"));
         addDispatch(new StandardBlockModel<>(Blocks.CAPSTONE_MARBLE).withTextures("minecraft:block/capstone_marble_top", "minecraft:block/capstone_marble_side"));
@@ -66,6 +67,7 @@ public class BlockModelDispatcher
         addDispatch(new StandardBlockModel<>(Blocks.LIMESTONE_CARVED).withTextures("minecraft:block/polished_limestone_top", "minecraft:block/carved_limestone"));
         addDispatch(new StandardBlockModel<>(Blocks.BASALT_CARVED).withTextures("minecraft:block/polished_basalt_top", "minecraft:block/carved_basalt"));
         addDispatch(new StandardBlockModel<>(Blocks.PERMAFROST_CARVED).withTextures("minecraft:block/polished_permafrost_top", "minecraft:block/carved_permafrost"));
+        addDispatch(new StandardBlockModel<>(Blocks.NETHERRACK_CARVED).withTextures("minecraft:block/polished_netherrack_top", "minecraft:block/carved_netherrack"));
 
         addDispatch(new StandardBlockModel<>(Blocks.PLANKS_OAK).withTextures("minecraft:block/planks_oak"));
         addDispatch(new PlanksPaintedBlockModel<>(Blocks.PLANKS_OAK_PAINTED));
@@ -166,6 +168,8 @@ public class BlockModelDispatcher
 
         addDispatch(new StandardBlockModel<>(Blocks.SPONGE_DRY).withTextures("minecraft:block/sponge"));
         addDispatch(new StandardBlockModel<>(Blocks.SPONGE_WET).withTextures("minecraft:block/sponge_wet"));
+        addDispatch(new PumiceBlockModel<>(Blocks.PUMICE_DRY).withTextures("minecraft:block/pumice"));
+        addDispatch(new PumiceBlockModel<>(Blocks.PUMICE_WET).withTextures("minecraft:block/pumice_overlay"));
 
         addDispatch(new MossyStoneBlockModel<>(Blocks.MOSS_STONE).withTextures("minecraft:block/stone"));
         addDispatch(new MossyStoneBlockModel<>(Blocks.MOSS_BASALT).withTextures("minecraft:block/basalt"));
@@ -409,8 +413,16 @@ public class BlockModelDispatcher
         addDispatch(new RedstonePumpkinBlockModel(Blocks.PUMPKIN_REDSTONE).withTextures("minecraft:block/pumpkin_top", "minecraft:block/pumpkin_bottom", "minecraft:block/pumpkin_redstone", "minecraft:block/pumpkin_side", "minecraft:block/pumpkin_side", "minecraft:block/pumpkin_side"));
 
 
+        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_NETHERRACK).withTextures("minecraft:block/cobbled_netherrack"));
+        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_NETHERRACK_IGNEOUS).withTextures("minecraft:block/cobbled_netherrack_igneous").withOverbrightTexture("minecraft:block/cobbled_netherrack_igneous_overlay"));
+        addDispatch(new StandardBlockModel<>(Blocks.COBBLE_NETHERRACK_MOSSY).withTextures("minecraft:block/cobbled_netherrack_mossy"));
         addDispatch(new StandardBlockModel<>(Blocks.NETHERRACK).withTextures("minecraft:block/netherrack"));
-        addDispatch(new StandardBlockModel<>(Blocks.NETHERRACK_IGNEOUS).withTextures("minecraft:block/netherrack_igneous").withOverbrightTexture("minecraft:block/netherrack_igneous_overlay"));
+        addDispatch(new StandardBlockModel<>(Blocks.BRICK_NETHERRACK).withTextures("minecraft:block/brick_netherrack"));
+        addDispatch(new SlabBlockModel<>(Blocks.SLAB_NETHERRACK_POLISHED));
+        addDispatch(new SlabBlockModel<>(Blocks.SLAB_COBBLE_NETHERRACK));
+        addDispatch(new SlabBlockModel<>(Blocks.SLAB_BRICK_NETHERRACK));
+        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_COBBLE_NETHERRACK));
+        addDispatch(new StairsBlockModel<>(Blocks.STAIRS_BRICK_NETHERRACK));
 
         addDispatch(new StandardBlockModel<>(Blocks.SOULSAND).withTextures("minecraft:block/soulsand"));
         addDispatch(new StandardBlockModel<>(Blocks.GLOWSTONE).withTextures("minecraft:block/glowstone"));
diff --git a/src/main/java/net/minecraft/client/render/block/model/PumiceBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/PumiceBlockModel.java
new file mode 100644
index 000000000..90f16ade1
--- /dev/null
+++ b/src/main/java/net/minecraft/client/render/block/model/PumiceBlockModel.java
@@ -0,0 +1,62 @@
+package net.minecraft.client.render.block.model;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.render.LightmapHelper;
+import net.minecraft.client.render.tessellator.Tessellator;
+import net.minecraft.client.render.texture.stitcher.IconCoordinate;
+import net.minecraft.client.render.texture.stitcher.TextureRegistry;
+import net.minecraft.core.block.Block;
+import net.minecraft.core.util.helper.Side;
+import net.minecraft.core.world.WorldSource;
+import org.jetbrains.annotations.Nullable;
+
+public class PumiceBlockModel<T extends Block> extends StandardBlockModel<T>{
+    private boolean lavaFlag = false;
+    public PumiceBlockModel(Block block) {
+        super(block);
+    }
+
+    @Override
+    public boolean render(Tessellator tessellator, int x, int y, int z) {
+        lavaFlag = true;
+        boolean ob = renderBlocks.overbright;
+        renderBlocks.overbright = true;
+//        block.setBlockBounds(0.005, 0.005, 0.005, 0.995, 0.995, 0.995);
+        boolean rendered = super.render(tessellator, x, y, z);
+
+        renderBlocks.overbright = ob;
+        lavaFlag = false;
+//        block.setBlockBounds(0, 0, 0, 1, 1, 1);
+        rendered |= super.render(tessellator, x, y, z);
+        return rendered;
+    }
+
+    @Override
+    public void renderBlockOnInventory(Tessellator tessellator, int metadata, float brightness, float alpha, @Nullable Integer lightmapCoordinate) {
+        lavaFlag = true;
+        boolean ob = renderBlocks.overbright;
+        renderBlocks.overbright = true;
+        block.setBlockBounds(0.005, 0.005, 0.005, 0.995, 0.995, 0.995);
+        super.renderBlockOnInventory(tessellator, metadata, brightness, alpha, LightmapHelper.getLightmapCoord(15, 15));
+
+        renderBlocks.overbright = ob;
+        lavaFlag = false;
+        if (LightmapHelper.isLightmapEnabled()) {
+            lightmapCoordinate = Minecraft.getMinecraft(this).thePlayer.getLightmapCoord(1f);
+        }
+        block.setBlockBounds(0, 0, 0, 1, 1, 1);
+        super.renderBlockOnInventory(tessellator, metadata, brightness, alpha, lightmapCoordinate);
+    }
+
+    @Override
+    public IconCoordinate getBlockTextureFromSideAndMetadata(Side side, int data) {
+        if (lavaFlag) return TextureRegistry.getTexture("minecraft:block/lava_still");
+        return super.getBlockTextureFromSideAndMetadata(side, data);
+    }
+
+    @Override
+    public IconCoordinate getBlockOverbrightTextureFromSideAndMeta(Side side, int data) {
+        if (lavaFlag) return TextureRegistry.getTexture("minecraft:block/lava_still");
+        return super.getBlockOverbrightTextureFromSideAndMeta(side, data);
+    }
+}
diff --git a/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java
index 4ce568b70..0925fa221 100644
--- a/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java
@@ -113,7 +113,7 @@ public class StandardBlockModel<T extends Block> extends BlockModel<T>{
 //			GL11.glEnable(GL11.GL_LIGHTING);
 		}
 
-		GL11.glTranslatef(0.5F, 0.5F, 0.5F);
+		GL11.glTranslatef(0.5F, yOffset, 0.5F);
 	}
 
     @Override
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelDispatcher.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelDispatcher.java
index 6cc41a2fc..64dfe09cc 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelDispatcher.java
@@ -207,6 +207,7 @@ public class ItemModelDispatcher extends Dispatcher<Item, ItemModel> {
 
         addDispatch(new StandardItemModel(Items.WAND_MONSTER_SPAWNER, "minecraft").setFull3D());
         addDispatch(new StandardItemModel(Items.DOOR_STEEL, "minecraft"));
+        addDispatch(new PaintbrushItemModel(Items.PAINTBRUSH, "minecraft").setFull3D());
 
         addDispatch(new StandardItemModel(Items.RECORD_13, "minecraft"));
         addDispatch(new StandardItemModel(Items.RECORD_CAT, "minecraft"));
diff --git a/src/main/java/net/minecraft/client/render/item/model/PaintbrushItemModel.java b/src/main/java/net/minecraft/client/render/item/model/PaintbrushItemModel.java
new file mode 100644
index 000000000..e0b5cb18e
--- /dev/null
+++ b/src/main/java/net/minecraft/client/render/item/model/PaintbrushItemModel.java
@@ -0,0 +1,34 @@
+package net.minecraft.client.render.item.model;
+
+import net.minecraft.client.render.texture.stitcher.IconCoordinate;
+import net.minecraft.client.render.texture.stitcher.TextureRegistry;
+import net.minecraft.core.entity.Entity;
+import net.minecraft.core.item.Item;
+import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.item.PaintBrushItem;
+import net.minecraft.core.util.helper.DyeColor;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+public class PaintbrushItemModel extends StandardItemModel {
+    public static IconCoordinate emptyIcon = TextureRegistry.getTexture("minecraft:item/paintbrush");
+    public static IconCoordinate[] paintbrushIcons = new IconCoordinate[DyeColor.COLOR_AMOUNT];
+    static {
+        for (DyeColor c : DyeColor.itemOrderedColors()){
+            paintbrushIcons[c.itemMeta] = TextureRegistry.getTexture("minecraft:item/paintbrush_" + c.colorID);
+        }
+    }
+
+    public PaintbrushItemModel(Item item, String namespace) {
+        super(item, namespace);
+    }
+
+    @Override
+    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack) {
+        final DyeColor color = ((PaintBrushItem) itemStack.getItem()).getColor(itemStack);
+        if (color == null) {
+            return emptyIcon;
+        }
+        return paintbrushIcons[color.itemMeta];
+    }
+}
diff --git a/src/main/java/net/minecraft/client/sound/SoundRepository.java b/src/main/java/net/minecraft/client/sound/SoundRepository.java
index f0da324ee..31061d450 100644
--- a/src/main/java/net/minecraft/client/sound/SoundRepository.java
+++ b/src/main/java/net/minecraft/client/sound/SoundRepository.java
@@ -6,13 +6,13 @@ import net.minecraft.core.util.collection.NamespaceID;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
+import java.util.*;
 
 public class SoundRepository extends Registry<NamedSoundRepository> {
     protected static Minecraft mc = null;
     public static SoundRepository SOUNDS = null;
+    public Set<String> cachedRepositoryErrors = new HashSet<>();
+    public Set<NamespaceID> cachedEntryErrors = new HashSet<>();
     public SoundRepository() {
         registerNamespace("minecraft");
     }
@@ -30,7 +30,10 @@ public class SoundRepository extends Registry<NamedSoundRepository> {
         if (namespaceID == null) return null;
         NamedSoundRepository soundRepository = getItem(namespaceID.namespace);
         if (soundRepository == null) {
-            System.err.println("Could not find sound repository under namespace '" + namespaceID.namespace + "'!");
+            if (!cachedRepositoryErrors.contains(namespaceID.namespace)) {
+                System.err.println("Could not find sound repository under namespace '" + namespaceID.namespace + "'!");
+                cachedRepositoryErrors.add(namespaceID.namespace);
+            }
             return null;
         }
         return soundRepository.getItem(namespaceID.value);
@@ -45,7 +48,10 @@ public class SoundRepository extends Registry<NamedSoundRepository> {
         if (namespaceID == null) return null;
         SoundEvent event = getSoundEvent(namespaceID);
         if (event == null) {
-            System.err.println("Count not find sound event in namespace '" + namespaceID.namespace + "' matching key '" + namespaceID.value + "'!");
+            if (!cachedEntryErrors.contains(namespaceID)) {
+                System.err.println("Could not find sound event in namespace '" + namespaceID.namespace + "' matching key '" + namespaceID.value + "'!");
+                cachedEntryErrors.add(namespaceID);
+            }
             return null;
         }
         return event.getRandomEntry();
diff --git a/src/main/java/net/minecraft/core/block/Blocks.java b/src/main/java/net/minecraft/core/block/Blocks.java
index be800a530..92b38f0d2 100644
--- a/src/main/java/net/minecraft/core/block/Blocks.java
+++ b/src/main/java/net/minecraft/core/block/Blocks.java
@@ -43,6 +43,7 @@ public final class Blocks {
     public static Block BASALT_POLISHED;
     public static Block SLATE_POLISHED;
     public static Block PERMAFROST_POLISHED;
+    public static Block NETHERRACK_POLISHED;
 
     public static Block PILLAR_MARBLE;
     public static Block CAPSTONE_MARBLE;
@@ -54,6 +55,7 @@ public final class Blocks {
     public static Block LIMESTONE_CARVED;
     public static Block BASALT_CARVED;
     public static Block PERMAFROST_CARVED;
+    public static Block NETHERRACK_CARVED;
 
     public static Block PLANKS_OAK;
     public static Block PLANKS_OAK_PAINTED;
@@ -150,6 +152,8 @@ public final class Blocks {
 
     public static Block SPONGE_DRY;
     public static Block SPONGE_WET;
+    public static Block PUMICE_DRY;
+    public static Block PUMICE_WET;
 
     public static Block MOSS_STONE;
     public static Block MOSS_BASALT;
@@ -388,8 +392,16 @@ public final class Blocks {
     public static Block PUMPKIN_CARVED_ACTIVE;
     public static Block PUMPKIN_REDSTONE;
 
+    public static Block COBBLE_NETHERRACK;
+    public static Block COBBLE_NETHERRACK_IGNEOUS;
+    public static Block COBBLE_NETHERRACK_MOSSY;
     public static Block NETHERRACK;
-    public static Block NETHERRACK_IGNEOUS;
+    public static Block BRICK_NETHERRACK;
+    public static Block SLAB_NETHERRACK_POLISHED;
+    public static Block SLAB_COBBLE_NETHERRACK;
+    public static Block SLAB_BRICK_NETHERRACK;
+    public static Block STAIRS_COBBLE_NETHERRACK;
+    public static Block STAIRS_BRICK_NETHERRACK;
 
     public static Block SOULSAND;
 
@@ -490,6 +502,8 @@ public final class Blocks {
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         PERMAFROST_POLISHED = new Block("permafrost.polished", "minecraft:block/permafrost_polished", 865, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(1.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        NETHERRACK_POLISHED = new Block("netherrack.polished", "minecraft:block/netherrack_polished", 866, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.4F).withDisabledNeighborNotifyOnMetadataChange()
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         PILLAR_MARBLE = new AxisAlignedBlock("pillar.marble", "minecraft:block/pillar_marble", 20, Material.marble).withSound(BlockSounds.STONE).withHardness(1.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
@@ -509,8 +523,10 @@ public final class Blocks {
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
         PERMAFROST_CARVED = new Block("permafrost.carved", "minecraft:block/permafrost_carved", 44, Material.permafrost).withSound(BlockSounds.PERMAFROST).withHardness(2.0F).withBlastResistance(10F).withDisabledStats()
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
+        NETHERRACK_CARVED = new Block("netherrack.carved", "minecraft:block/netherrack_carved", 45, Material.netherrack).withSound(BlockSounds.STONE).withHardness(2.0F).withBlastResistance(10F).withDisabledStats()
+            .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE);
 
-        PLANKS_OAK = new Block("planks.oak", "minecraft:block/planks_oak", 50, Material.wood).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
+        PLANKS_OAK = new PlanksBlock("planks.oak", "minecraft:block/planks_oak", 50, Material.wood).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE);
         PLANKS_OAK_PAINTED = new PaintedPlanksBlock("planks.oak.painted", "minecraft:block/planks_oak_painted", 51).withSound(BlockSounds.WOOD).withHardness(2.0F).withBlastResistance(5F).withDisabledNeighborNotifyOnMetadataChange()
             .setBlockItem((b) -> new PaintedBlockItem(b, false))
@@ -573,7 +589,7 @@ public final class Blocks {
         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);
 
-        SLAB_PLANKS_OAK = new SlabBlock(PLANKS_OAK, "minecraft:block/slab_planks_oak", 140).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        SLAB_PLANKS_OAK = new PaintableSlabBlock(PLANKS_OAK, "minecraft:block/slab_planks_oak", 140).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_AXE);
         SLAB_COBBLE_STONE = new SlabBlock(COBBLE_STONE, "minecraft:block/slab_cobble_stone", 141).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
@@ -615,7 +631,7 @@ public final class Blocks {
         SLAB_BASALT_POLISHED = new SlabBlock(BASALT_CARVED, "minecraft:block/slab_basalt_carved", 159).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
-        STAIRS_PLANKS_OAK = new StairsBlock(PLANKS_OAK, "minecraft:block/stairs_planks_oak", 160).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_PLANKS_OAK = new PaintableStairsBlock(PLANKS_OAK, "minecraft:block/stairs_planks_oak", 160).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_AXE);
         STAIRS_COBBLE_STONE = new StairsBlock(COBBLE_STONE, "minecraft:block/stairs_cobble_stone", 161).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
@@ -637,7 +653,7 @@ public final class Blocks {
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
         STAIRS_BRICK_CLAY = new StairsBlock(BRICK_CLAY, "minecraft:block/stairs_brick_clay", 170).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-        STAIRS_PLANKS_PAINTED = new StairsBlock(PLANKS_OAK_PAINTED, "minecraft:block/stairs_planks_oak_painted", 171).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
+        STAIRS_PLANKS_PAINTED = new PaintedStairsBlock(PLANKS_OAK_PAINTED, "minecraft:block/stairs_planks_oak_painted", 171).withSound(BlockSounds.WOOD).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .setBlockItem(BlockItemStairsPainted::new)
             .withTags(BlockTags.MINEABLE_BY_AXE);
         STAIRS_BRICK_SLATE = new StairsBlock(BRICK_SLATE, "minecraft:block/stairs_brick_slate", 172).withSound(BlockSounds.STONE).withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
@@ -686,6 +702,10 @@ public final class Blocks {
             .withTags(BlockTags.MINEABLE_BY_SHEARS);
         SPONGE_WET = new SpongeBlock("sponge.wet", "minecraft:block/sponge_wet", 231, true).withSound(BlockSounds.GRASS).withHardness(1.0F).withOverrideColor(MaterialColor.paintedYellow)
             .withTags(BlockTags.MINEABLE_BY_SHEARS);
+        PUMICE_DRY = new PumiceBlock("pumice.dry", "minecraft:block/pumice_dry", 232, false).withSound(BlockSounds.STONE).withHardness(0.6F).withOverrideColor(MaterialColor.fire)
+            .withTags(BlockTags.MINEABLE_BY_SHEARS);
+        PUMICE_WET = new PumiceBlock("pumice.wet", "minecraft:block/pumice_wet", 233, true).withSound(BlockSounds.STONE).withHardness(1.0F).withLightEmission(0.625F).withOverrideColor(MaterialColor.fire)
+            .withTags(BlockTags.MINEABLE_BY_SHEARS);
 
         MOSS_STONE = new MossBlock("moss.stone", "minecraft:block/moss_stone", 240, STONE.id).withSound(BlockSounds.STONE).withHardness(1.5F).withBlastResistance(10F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE);
@@ -962,7 +982,7 @@ public final class Blocks {
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         DISPENSER_COBBLE_STONE = new DispenserBlock("dispenser.cobble.stone", "minecraft:block/dispenser_cobble_stone", 560).withSound(BlockSounds.STONE).withHardness(3.5F).withDisabledNeighborNotifyOnMetadataChange().withImmovableFlagSet()
-            .withTags(BlockTags.MINEABLE_BY_PICKAXE);;
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         TRAPDOOR_PLANKS_OAK = new TrapDoorBlock("trapdoor.planks.oak", "minecraft:block/trapdoor_planks_oak", 570, Material.wood).withSound(BlockSounds.WOOD).withHardness(3F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE);
@@ -1108,9 +1128,25 @@ public final class Blocks {
         PUMPKIN_REDSTONE = new RedstonePumpkinBlock("pumpkin.redstone", "minecraft:block/pumpkin_redstone", 793).withSound(BlockSounds.WOOD).withHardness(1.0F).withDisabledNeighborNotifyOnMetadataChange();
 
 
-        NETHERRACK = new Block("netherrack", "minecraft:block/netherrack", 800, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.4F)
+        COBBLE_NETHERRACK = new Block("cobble.netherrack", "minecraft:block/cobble_netherrack", 800, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.4F)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN);
+        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)
+            .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)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN);
-        NETHERRACK_IGNEOUS = new Block("netherrack.igneous", "minecraft:block/netherrack_igneous", 801, Material.netherrack).withSound(BlockSounds.STONE).withHardness(1.25F).withBlastResistance(7F).withLightEmission(10)
+        NETHERRACK = new Block("netherrack", "minecraft:block/netherrack", 803, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.32F)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.INFINITE_BURN);
+        BRICK_NETHERRACK = new Block("brick.netherrack", "minecraft:block/brick_netherrack", 804, Material.netherrack).withSound(BlockSounds.STONE).withHardness(0.4F)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        SLAB_NETHERRACK_POLISHED = new SlabBlock(NETHERRACK_CARVED, "minecraft:block/slab_netherrack_polished", 805).withSound(BlockSounds.STONE).withHardness(0.4F)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        SLAB_COBBLE_NETHERRACK = new SlabBlock(COBBLE_NETHERRACK, "minecraft:block/slab_cobble_netherrack", 806).withSound(BlockSounds.STONE).withHardness(0.4F)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        SLAB_BRICK_NETHERRACK = new SlabBlock(BRICK_NETHERRACK, "minecraft:block/slab_brick_netherrack", 807).withSound(BlockSounds.STONE).withHardness(0.4F)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        STAIRS_COBBLE_NETHERRACK = new StairsBlock(COBBLE_NETHERRACK, "minecraft:block/stairs_cobble_netherrack", 808).withSound(BlockSounds.STONE).withHardness(0.4F).withLitInteriorSurface(true)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
+        STAIRS_BRICK_NETHERRACK = new StairsBlock(BRICK_NETHERRACK, "minecraft:block/stairs_brick_netherrack", 809).withSound(BlockSounds.STONE).withHardness(0.4F).withLitInteriorSurface(true)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
 
         SOULSAND = new SoulSandBlock("soulsand", "minecraft:block/soulsand", 810).withSound(BlockSounds.SAND).withHardness(0.5F).withOverrideColor(MaterialColor.paintedBrown)
diff --git a/src/main/java/net/minecraft/core/block/ChestBlock.java b/src/main/java/net/minecraft/core/block/ChestBlock.java
index 8565a79de..638e7035b 100644
--- a/src/main/java/net/minecraft/core/block/ChestBlock.java
+++ b/src/main/java/net/minecraft/core/block/ChestBlock.java
@@ -11,11 +11,12 @@ import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.player.inventory.container.Container;
 import net.minecraft.core.player.inventory.container.CompoundContainer;
 import net.minecraft.core.util.helper.Direction;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 import org.slf4j.Logger;
 
-public class ChestBlock extends EntityBlock {
+public class ChestBlock extends EntityBlock implements IPaintable {
 	private static final Logger LOGGER = LogUtils.getLogger();
 	public ChestBlock(String key, String namespaceId, int id, Material material) {
 		super(key, namespaceId, id, material);
@@ -325,7 +326,14 @@ public class ChestBlock extends EntityBlock {
 	public static Type getTypeFromMeta(int meta) {
 		return Type.get((meta >> typeOffset) & 3);
 	}
-	
+
+	@Override
+	public void setColor(World world, int x, int y, int z, DyeColor color) {
+		final int meta = world.getBlockMetadata(x, y, z);
+		world.setBlockAndMetadata(x, y, z, Blocks.CHEST_PLANKS_OAK_PAINTED.id, meta);
+		((IPaintable) Blocks.CHEST_PLANKS_OAK_PAINTED).setColor(world, x, y, z, color);
+	}
+
 	// Enum
 	
 	public enum Type{
diff --git a/src/main/java/net/minecraft/core/block/ChestBlockPainted.java b/src/main/java/net/minecraft/core/block/ChestBlockPainted.java
index c894114c2..c2b5b78e2 100644
--- a/src/main/java/net/minecraft/core/block/ChestBlockPainted.java
+++ b/src/main/java/net/minecraft/core/block/ChestBlockPainted.java
@@ -5,10 +5,11 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class ChestBlockPainted extends ChestBlock {
+public class ChestBlockPainted extends ChestBlock implements IPainted {
 
 	protected ChestBlockPainted(String key, String namespaceId, int id, Material material) {
 		super(key, namespaceId, id, material);
@@ -32,4 +33,29 @@ public class ChestBlockPainted extends ChestBlock {
 	public static final int colorBits = 0b00000000_00000000_00000000_11110000;
 	public static final int colorOffset = 4;
 
+	@Override
+	public DyeColor fromMetadata(int meta) {
+		return DyeColor.colorFromBlockMeta((meta & colorBits) >> colorOffset);
+	}
+
+	@Override
+	public int toMetadata(DyeColor color) {
+		return color.blockMeta << colorOffset;
+	}
+
+	@Override
+	public int stripColorFromMetadata(int meta) {
+		return meta & ~colorBits;
+	}
+
+	@Override
+	public void removeDye(World world, int x, int y, int z) {
+		final int meta = stripColorFromMetadata(world.getBlockMetadata(x, y, z));
+		world.setBlockAndMetadataWithNotify(x, y, z, Blocks.CHEST_PLANKS_OAK.id, meta);
+	}
+
+	@Override
+	public void setColor(World world, int x, int y, int z, DyeColor color) {
+		IPainted.super.setColor(world, x, y, z, color);
+	}
 }
diff --git a/src/main/java/net/minecraft/core/block/DoorBlock.java b/src/main/java/net/minecraft/core/block/DoorBlock.java
index e0fd691f5..ee888acf1 100644
--- a/src/main/java/net/minecraft/core/block/DoorBlock.java
+++ b/src/main/java/net/minecraft/core/block/DoorBlock.java
@@ -5,6 +5,7 @@ import java.util.function.Supplier;
 
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.phys.HitResult;
 import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.block.material.Material;
@@ -25,7 +26,7 @@ import org.jetbrains.annotations.Nullable;
 //            Item, AxisAlignedBB, Player, Vec3D,
 //            MovingObjectPosition
 
-public class DoorBlock extends Block
+public class DoorBlock extends Block implements IPaintable
 {
 
 	public final boolean isTop;
@@ -317,4 +318,20 @@ public class DoorBlock extends Block
     {
         return 1;
     }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        if (isTop) {
+            world.setBlockAndMetadata(x, y, z, Blocks.DOOR_PLANKS_PAINTED_TOP.id, meta);
+            ((IPaintable) Blocks.DOOR_PLANKS_PAINTED_TOP).setColor(world, x, y, z, color);
+            world.setBlockAndMetadata(x, y - 1, z, Blocks.DOOR_PLANKS_PAINTED_BOTTOM.id, meta);
+            ((IPaintable) Blocks.DOOR_PLANKS_PAINTED_BOTTOM).setColor(world, x, y - 1, z, color);
+        } else {
+            world.setBlockAndMetadata(x, y, z, Blocks.DOOR_PLANKS_PAINTED_BOTTOM.id, meta);
+            ((IPaintable) Blocks.DOOR_PLANKS_PAINTED_BOTTOM).setColor(world, x, y, z, color);
+            world.setBlockAndMetadata(x, y + 1, z, Blocks.DOOR_PLANKS_PAINTED_TOP.id, meta);
+            ((IPaintable) Blocks.DOOR_PLANKS_PAINTED_TOP).setColor(world, x, y + 1, z, color);
+        }
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/DoorPaintedBlock.java b/src/main/java/net/minecraft/core/block/DoorPaintedBlock.java
index a2daae478..f857b9723 100644
--- a/src/main/java/net/minecraft/core/block/DoorPaintedBlock.java
+++ b/src/main/java/net/minecraft/core/block/DoorPaintedBlock.java
@@ -5,9 +5,10 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.Items;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.world.World;
 
-public class DoorPaintedBlock extends DoorBlock {
+public class DoorPaintedBlock extends DoorBlock implements IPainted {
     public DoorPaintedBlock(String key, String namespaceId, int id, Material material, boolean isTop) {
         super(key, namespaceId, id, material, isTop, false, null);
     }
@@ -16,4 +17,41 @@ public class DoorPaintedBlock extends DoorBlock {
     {
         return new ItemStack[] { new ItemStack(Items.DOOR_OAK_PAINTED, 1, 15 - (meta >> 4 & 0xF)) };
     }
+
+    @Override
+    public DyeColor fromMetadata(int meta) {
+        return DyeColor.colorFromBlockMeta(meta >> 4 & 0xF);
+    }
+
+    @Override
+    public int toMetadata(DyeColor color) {
+        return color.blockMeta << 4;
+    }
+
+    @Override
+    public int stripColorFromMetadata(int meta) {
+        return meta & 0xF;
+    }
+
+    @Override
+    public void removeDye(World world, int x, int y, int z) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadataWithNotify(x, y, z, this.isTop ? Blocks.DOOR_PLANKS_OAK_TOP.id : Blocks.DOOR_PLANKS_OAK_BOTTOM.id, meta & 0xF);
+        if (this.isTop) {
+            world.setBlockAndMetadataWithNotify(x, y - 1, z, Blocks.DOOR_PLANKS_OAK_BOTTOM.id, meta & 0xF);
+        } else {
+            world.setBlockAndMetadataWithNotify(x, y + 1, z, Blocks.DOOR_PLANKS_OAK_TOP.id, meta & 0xF);
+        }
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockMetadataWithNotify(x, y, z, meta & 0xF | toMetadata(color));
+        if (this.isTop) {
+            world.setBlockMetadataWithNotify(x, y - 1, z, meta & 0xF | toMetadata(color));
+        } else {
+            world.setBlockMetadataWithNotify(x, y + 1, z, meta & 0xF | toMetadata(color));
+        }
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/FenceBlock.java b/src/main/java/net/minecraft/core/block/FenceBlock.java
index c1b5f735c..5b6c71208 100644
--- a/src/main/java/net/minecraft/core/block/FenceBlock.java
+++ b/src/main/java/net/minecraft/core/block/FenceBlock.java
@@ -4,13 +4,15 @@ package net.minecraft.core.block;
 // Referenced classes of package net.minecraft.src:
 //            Block, Material, World, AxisAlignedBB
 
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.world.World;
 import net.minecraft.core.world.WorldSource;
 
 
-public class FenceBlock extends Block
+public class FenceBlock extends Block implements IPaintable
 {
 //    private static final List<BoundingVolume> selectionVolumes = new ArrayList<>();
 //
@@ -131,4 +133,10 @@ public class FenceBlock extends Block
         int l = iblockaccess.getBlockId(x, y, z);
         return Block.hasTag(l, BlockTags.FENCES_CONNECT);
     }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        world.setBlock(x, y, z, Blocks.FENCE_PLANKS_OAK_PAINTED.id);
+        ((IPaintable) Blocks.FENCE_PLANKS_OAK_PAINTED).setColor(world, x, y, z, color);
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/FenceGateBlock.java b/src/main/java/net/minecraft/core/block/FenceGateBlock.java
index 0f7dc784c..65998b750 100644
--- a/src/main/java/net/minecraft/core/block/FenceGateBlock.java
+++ b/src/main/java/net/minecraft/core/block/FenceGateBlock.java
@@ -6,12 +6,13 @@ import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.tag.ItemTags;
 import net.minecraft.core.sound.SoundCategory;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.MathHelper;
 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;
-public class FenceGateBlock extends Block
+public class FenceGateBlock extends Block implements IPaintable
 {
 
     public FenceGateBlock(String key, String namespaceId, int id)
@@ -126,4 +127,11 @@ public class FenceGateBlock extends Block
     {
         return i & 3;
     }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadata(x, y, z, Blocks.FENCE_GATE_PLANKS_OAK_PAINTED.id, meta);
+        ((IPaintable) Blocks.FENCE_GATE_PLANKS_OAK_PAINTED).setColor(world, x, y, z, color);
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/IPaintable.java b/src/main/java/net/minecraft/core/block/IPaintable.java
new file mode 100644
index 000000000..8accbcf5b
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/IPaintable.java
@@ -0,0 +1,8 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public interface IPaintable {
+    void setColor(World world, int x, int y, int z, DyeColor color);
+}
diff --git a/src/main/java/net/minecraft/core/block/IPainted.java b/src/main/java/net/minecraft/core/block/IPainted.java
new file mode 100644
index 000000000..a8a022920
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/IPainted.java
@@ -0,0 +1,21 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public interface IPainted extends IPaintable {
+    DyeColor fromMetadata(int meta);
+    int toMetadata(DyeColor color);
+    int stripColorFromMetadata(int meta);
+
+    void removeDye(World world, int x, int y, int z);
+
+    default DyeColor getColor(World world, int x, int y, int z) {
+        return fromMetadata(world.getBlockMetadata(x, y, z));
+    }
+
+    default void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockMetadataWithNotify(x, y, z, stripColorFromMetadata(meta) | toMetadata(color));
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/LampBlock.java b/src/main/java/net/minecraft/core/block/LampBlock.java
index be592ae3a..236df86fe 100644
--- a/src/main/java/net/minecraft/core/block/LampBlock.java
+++ b/src/main/java/net/minecraft/core/block/LampBlock.java
@@ -5,10 +5,11 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Mob;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class LampBlock extends Block {
+public class LampBlock extends Block implements IPainted {
     public boolean isActive;
 
     public LampBlock(String key, String namespaceId, int id, boolean isActivated) {
@@ -46,4 +47,24 @@ public class LampBlock extends Block {
     public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, int y, int z, int meta, BlockEntity blockEntity) {
         return new ItemStack[]{new ItemStack(Blocks.LAMP_IDLE, 1, meta)};
     }
+
+    @Override
+    public DyeColor fromMetadata(int meta) {
+        return DyeColor.colorFromBlockMeta(meta & 0x0F);
+    }
+
+    @Override
+    public int toMetadata(DyeColor color) {
+        return color.blockMeta;
+    }
+
+    @Override
+    public int stripColorFromMetadata(int meta) {
+        return 0;
+    }
+
+    @Override
+    public void removeDye(World world, int x, int y, int z) {
+        world.setBlockMetadataWithNotify(x, y, z, 0);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/core/block/PaintableSlabBlock.java b/src/main/java/net/minecraft/core/block/PaintableSlabBlock.java
new file mode 100644
index 000000000..96b12d38b
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/PaintableSlabBlock.java
@@ -0,0 +1,17 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public class PaintableSlabBlock extends SlabBlock implements IPaintable {
+    public PaintableSlabBlock(Block modelBlock, String namespaceId, int id) {
+        super(modelBlock, namespaceId, id);
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadata(x, y, z, Blocks.SLAB_PLANKS_PAINTED.id, meta);
+        ((IPaintable) Blocks.SLAB_PLANKS_PAINTED).setColor(world, x, y, z, color);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/PaintableStairsBlock.java b/src/main/java/net/minecraft/core/block/PaintableStairsBlock.java
new file mode 100644
index 000000000..8cf9d16d0
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/PaintableStairsBlock.java
@@ -0,0 +1,17 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public class PaintableStairsBlock extends StairsBlock implements IPaintable {
+    public PaintableStairsBlock(Block block, String namespaceId, int id) {
+        super(block, namespaceId, id);
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadata(x, y, z, Blocks.STAIRS_PLANKS_PAINTED.id, meta);
+        ((IPaintable) Blocks.STAIRS_PLANKS_PAINTED).setColor(world, x, y, z, color);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/PaintedFenceBlock.java b/src/main/java/net/minecraft/core/block/PaintedFenceBlock.java
index eb86be43d..79eb16a18 100644
--- a/src/main/java/net/minecraft/core/block/PaintedFenceBlock.java
+++ b/src/main/java/net/minecraft/core/block/PaintedFenceBlock.java
@@ -4,10 +4,11 @@ import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class PaintedFenceBlock extends FenceBlock
+public class PaintedFenceBlock extends FenceBlock implements IPainted
 {
 	public PaintedFenceBlock(String key, String namespaceId, int id)
 	{
@@ -25,8 +26,28 @@ public class PaintedFenceBlock extends FenceBlock
 		return new ItemStack[] { new ItemStack(this, 1, meta & 0x0F) };
 	}
 
-	public static int getMetadataForColour(int i)
-	{
-		return ~i & 0xF;
+	@Override
+	public DyeColor fromMetadata(int meta) {
+		return DyeColor.colorFromBlockMeta(meta & 0x0F);
+	}
+
+	@Override
+	public int toMetadata(DyeColor color) {
+		return color.blockMeta;
+	}
+
+	@Override
+	public int stripColorFromMetadata(int meta) {
+		return 0;
+	}
+
+	@Override
+	public void removeDye(World world, int x, int y, int z) {
+		world.setBlockWithNotify(x, y, z, Blocks.FENCE_PLANKS_OAK.id);
+	}
+
+	@Override
+	public void setColor(World world, int x, int y, int z, DyeColor color) {
+		IPainted.super.setColor(world, x, y, z, color);
 	}
 }
diff --git a/src/main/java/net/minecraft/core/block/PaintedFenceGateBlock.java b/src/main/java/net/minecraft/core/block/PaintedFenceGateBlock.java
index 625aca883..e4dc3f197 100644
--- a/src/main/java/net/minecraft/core/block/PaintedFenceGateBlock.java
+++ b/src/main/java/net/minecraft/core/block/PaintedFenceGateBlock.java
@@ -4,10 +4,11 @@ import net.minecraft.core.block.entity.BlockEntity;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class PaintedFenceGateBlock extends FenceGateBlock
+public class PaintedFenceGateBlock extends FenceGateBlock implements IPainted
 {
 	public PaintedFenceGateBlock(String key, String namespaceId, int id)
 	{
@@ -25,8 +26,29 @@ public class PaintedFenceGateBlock extends FenceGateBlock
 		return new ItemStack[] { new ItemStack(this, 1, meta & 0xF0) };
 	}
 
-	public static int getMetadataForColour(int i)
-	{
-		return (~i << 4) & 0xF0;
+	@Override
+	public DyeColor fromMetadata(int meta) {
+		return DyeColor.colorFromBlockMeta((meta & 0xF0) >> 4);
+	}
+
+	@Override
+	public int toMetadata(DyeColor color) {
+		return color.blockMeta << 4;
+	}
+
+	@Override
+	public int stripColorFromMetadata(int meta) {
+		return meta & 0xF;
+	}
+
+	@Override
+	public void removeDye(World world, int x, int y, int z) {
+		final int meta = world.getBlockMetadata(x, y, z);
+		world.setBlockAndMetadataWithNotify(x, y, z, Blocks.FENCE_GATE_PLANKS_OAK.id, meta & 0xF);
+	}
+
+	@Override
+	public void setColor(World world, int x, int y, int z, DyeColor color) {
+		IPainted.super.setColor(world, x, y, z, color);
 	}
 }
diff --git a/src/main/java/net/minecraft/core/block/PaintedPlanksBlock.java b/src/main/java/net/minecraft/core/block/PaintedPlanksBlock.java
index a597b3867..f4ff81607 100644
--- a/src/main/java/net/minecraft/core/block/PaintedPlanksBlock.java
+++ b/src/main/java/net/minecraft/core/block/PaintedPlanksBlock.java
@@ -5,10 +5,11 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class PaintedPlanksBlock extends Block
+public class PaintedPlanksBlock extends Block implements IPainted
 {
     public PaintedPlanksBlock(String key, String namespaceId, int id)
     {
@@ -27,4 +28,28 @@ public class PaintedPlanksBlock extends Block
         return new ItemStack[] { new ItemStack(this, 1, meta) };
     }
 
+    @Override
+    public DyeColor fromMetadata(int meta) {
+        return DyeColor.colorFromBlockMeta(meta & 0x0F);
+    }
+
+    @Override
+    public int toMetadata(DyeColor color) {
+        return color.blockMeta;
+    }
+
+    @Override
+    public int stripColorFromMetadata(int meta) {
+        return 0;
+    }
+
+    @Override
+    public void removeDye(World world, int x, int y, int z) {
+        world.setBlockWithNotify(x, y, z, Blocks.PLANKS_OAK.id);
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        IPainted.super.setColor(world, x, y, z, color);
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/PaintedSlabBlock.java b/src/main/java/net/minecraft/core/block/PaintedSlabBlock.java
index f96d247af..5afa1a745 100644
--- a/src/main/java/net/minecraft/core/block/PaintedSlabBlock.java
+++ b/src/main/java/net/minecraft/core/block/PaintedSlabBlock.java
@@ -4,10 +4,11 @@ import net.minecraft.core.entity.Mob;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.Direction;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class PaintedSlabBlock extends SlabBlock
+public class PaintedSlabBlock extends SlabBlock implements IPainted
 {
 	public PaintedSlabBlock(Block modelBlock, String namespaceId, int id)
 	{
@@ -24,4 +25,30 @@ public class PaintedSlabBlock extends SlabBlock
 		int meta = mob.getVerticalPlacementDirection(side, sideHeight) == Direction.UP ? 2 : 0;
 		world.setBlockMetadataWithNotify(x, y, z, meta | (world.getBlockMetadata(x, y, z) & 0xF0));
 	}
+
+	@Override
+	public DyeColor fromMetadata(int meta) {
+		return DyeColor.colorFromBlockMeta((meta & 0xF0) >> 4);
+	}
+
+	@Override
+	public int toMetadata(DyeColor color) {
+		return color.blockMeta << 4;
+	}
+
+	@Override
+	public int stripColorFromMetadata(int meta) {
+		return meta & 0xF;
+	}
+
+	@Override
+	public void removeDye(World world, int x, int y, int z) {
+		final int meta = world.getBlockMetadata(x, y, z);
+		world.setBlockAndMetadataWithNotify(x, y, z, Blocks.PLANKS_OAK.id, meta & 0xF);
+	}
+
+	@Override
+	public void setColor(World world, int x, int y, int z, DyeColor color) {
+		IPainted.super.setColor(world, x, y, z, color);
+	}
 }
diff --git a/src/main/java/net/minecraft/core/block/PaintedStairsBlock.java b/src/main/java/net/minecraft/core/block/PaintedStairsBlock.java
new file mode 100644
index 000000000..0b63bdb3d
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/PaintedStairsBlock.java
@@ -0,0 +1,36 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public class PaintedStairsBlock extends StairsBlock implements IPainted {
+    public PaintedStairsBlock(Block block, String namespaceId, int id) {
+        super(block, namespaceId, id);
+    }
+
+    @Override
+    public DyeColor fromMetadata(int meta) {
+        return DyeColor.colorFromBlockMeta((meta & 0xF0) >> 4);
+    }
+
+    @Override
+    public int toMetadata(DyeColor color) {
+        return color.blockMeta << 4;
+    }
+
+    @Override
+    public int stripColorFromMetadata(int meta) {
+        return meta & 0xF;
+    }
+
+    @Override
+    public void removeDye(World world, int x, int y, int z) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadataWithNotify(x, y, z, Blocks.STAIRS_PLANKS_OAK.id, stripColorFromMetadata(meta));
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        IPainted.super.setColor(world, x, y, z, color);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/PaintedTrapDoorBlock.java b/src/main/java/net/minecraft/core/block/PaintedTrapDoorBlock.java
index 8df5e8b66..16a34f478 100644
--- a/src/main/java/net/minecraft/core/block/PaintedTrapDoorBlock.java
+++ b/src/main/java/net/minecraft/core/block/PaintedTrapDoorBlock.java
@@ -5,10 +5,11 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class PaintedTrapDoorBlock extends TrapDoorBlock {
+public class PaintedTrapDoorBlock extends TrapDoorBlock implements IPainted {
     public PaintedTrapDoorBlock(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
     }
@@ -23,4 +24,30 @@ public class PaintedTrapDoorBlock extends TrapDoorBlock {
     {
         return new ItemStack[] { new ItemStack(Blocks.TRAPDOOR_PLANKS_PAINTED, 1, (meta >> 4 & 0xF) << 4) };
     }
+
+    @Override
+    public DyeColor fromMetadata(int meta) {
+        return DyeColor.colorFromBlockMeta(meta >> 4 & 0xF);
+    }
+
+    @Override
+    public int toMetadata(DyeColor color) {
+        return color.blockMeta << 4;
+    }
+
+    @Override
+    public int stripColorFromMetadata(int meta) {
+        return meta & 0xF;
+    }
+
+    @Override
+    public void removeDye(World world, int x, int y, int z) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadataWithNotify(x, y, z, Blocks.TRAPDOOR_PLANKS_OAK.id, meta & 0xF);
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        IPainted.super.setColor(world, x, y, z, color);
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/PlanksBlock.java b/src/main/java/net/minecraft/core/block/PlanksBlock.java
new file mode 100644
index 000000000..46d5f28ac
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/PlanksBlock.java
@@ -0,0 +1,17 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.world.World;
+
+public class PlanksBlock extends Block implements IPaintable {
+    public PlanksBlock(String translationKey, String namespaceId, int id, Material material) {
+        super(translationKey, namespaceId, id, material);
+    }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        world.setBlock(x, y, z, Blocks.PLANKS_OAK_PAINTED.id);
+        ((IPaintable) Blocks.PLANKS_OAK_PAINTED).setColor(world, x, y, z, color);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/PumiceBlock.java b/src/main/java/net/minecraft/core/block/PumiceBlock.java
new file mode 100644
index 000000000..e19cb0ada
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/PumiceBlock.java
@@ -0,0 +1,123 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.sound.SoundCategory;
+import net.minecraft.core.util.helper.Side;
+import net.minecraft.core.world.Dimension;
+import net.minecraft.core.world.World;
+
+import java.util.Random;
+
+public class PumiceBlock extends Block {
+    final boolean isWet;
+    public PumiceBlock(String key, String namespaceId, int id, boolean isWet)
+    {
+        super(key, namespaceId, id, Material.stone);
+        this.isWet = isWet;
+    }
+
+    @Override
+    public void onBlockPlacedByWorld(World world, int x, int y, int z)
+    {
+        super.onBlockPlacedByWorld(world, x, y, z);
+        byte radius = 2;
+        if(isWet && (inWater(world, x, y, z) || world.dimension.id == Dimension.paradise.id)){
+            world.setBlockWithNotify(x, y, z, Blocks.PUMICE_DRY.id);
+            world.playSoundEffect(null, SoundCategory.WORLD_SOUNDS, x + 0.5D, y + 0.5D, z + 0.5D, "random.fizz", 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F);
+            for(int l = 0; l < 8; l++)
+            {
+                world.spawnParticle("largesmoke", (double)x + Math.random(), (double)y + Math.random(), (double)z + Math.random(), 0.0D, 0.0D, 0.0D, 0);
+            }
+        }
+        if(!isWet && inLava(world, x, y, z)) {
+            for (int _x = x - radius; _x <= x + radius; _x++) {
+                for (int _y = y - radius; _y <= y + radius; _y++) {
+                    for (int _z = z - radius; _z <= z + radius; _z++) {
+                        if (Block.hasTag(world.getBlockId(_x, _y, _z), BlockTags.IS_LAVA)) {
+                            world.setBlockWithNotify(_x, _y, _z, 0);
+                        }
+                    }
+                }
+            }
+            world.setBlockWithNotify(x, y, z, Blocks.PUMICE_WET.id);
+        }
+    }
+
+
+    public boolean inLava(World world, int x, int y, int z){
+        if (Block.hasTag(world.getBlockId(x + 1, y, z), BlockTags.IS_LAVA))
+            return true;
+        if (Block.hasTag(world.getBlockId(x - 1, y, z), BlockTags.IS_LAVA))
+            return true;
+        if (Block.hasTag(world.getBlockId(x, y + 1, z), BlockTags.IS_LAVA))
+            return true;
+        if (Block.hasTag(world.getBlockId(x, y - 1, z), BlockTags.IS_LAVA))
+            return true;
+        if (Block.hasTag(world.getBlockId(x, y , z + 1), BlockTags.IS_LAVA))
+            return true;
+        if (Block.hasTag(world.getBlockId(x, y , z - 1), BlockTags.IS_LAVA))
+            return true;
+        return false;
+    }
+
+    public boolean inWater(World world, int x, int y, int z){
+        if (Block.hasTag(world.getBlockId(x + 1, y, z), BlockTags.IS_WATER))
+            return true;
+        if (Block.hasTag(world.getBlockId(x - 1, y, z), BlockTags.IS_WATER))
+            return true;
+        if (Block.hasTag(world.getBlockId(x, y + 1, z), BlockTags.IS_WATER))
+            return true;
+        if (Block.hasTag(world.getBlockId(x, y - 1, z), BlockTags.IS_WATER))
+            return true;
+        if (Block.hasTag(world.getBlockId(x, y , z + 1), BlockTags.IS_WATER))
+            return true;
+        if (Block.hasTag(world.getBlockId(x, y , z - 1), BlockTags.IS_WATER))
+            return true;
+        return false;
+    }
+
+    @Override
+    public void onBlockRemoved(World world, int x, int y, int z, int data)
+    {
+        if(!isWet) {
+            byte radius = 2;
+            for (int _x = x - radius; _x <= x + radius; _x++) {
+                for (int _y = y - radius; _y <= y + radius; _y++) {
+                    for (int _z = z - radius; _z <= z + radius; _z++) {
+                        world.notifyBlocksOfNeighborChange(_x, _y, _z, world.getBlockId(_x, _y, _z));
+                    }
+
+                }
+            }
+        }
+
+    }
+
+    @Override
+    public void animationTick(World world, int x, int y, int z, Random rand) {
+        if (isWet) {
+            Side side = Side.sides[rand.nextInt(6)]; // Get random side
+            if (side == Side.TOP || world.isBlockOpaqueCube(x + side.getOffsetX(), y + side.getOffsetY(), z + side.getOffsetZ())) return;
+            float off1 = rand.nextFloat() * 0.9f + 0.05f;
+            float off2 = rand.nextFloat() * 0.9f + 0.05f;
+            switch (side) {
+                case BOTTOM:
+                    world.spawnParticle("dripLava", x + off1, y, z + off2, 0, 0, 0, 0);
+                    break;
+                case NORTH:
+                    world.spawnParticle("dripLava", x + off1, y + off2, z, 0, 0, 0, 0);
+                    break;
+                case SOUTH:
+                    world.spawnParticle("dripLava", x + off1, y + off2, z + 1, 0, 0, 0, 0);
+                    break;
+                case WEST:
+                    world.spawnParticle("dripLava", x, y + off1, z + off2, 0, 0, 0, 0);
+                    break;
+                case EAST:
+                    world.spawnParticle("dripLava", x + 1, y + off1, z + off2, 0, 0, 0, 0);
+                    break;
+            }
+        }
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/RedstoneBlock.java b/src/main/java/net/minecraft/core/block/RedstoneBlock.java
index 126ffeb1c..ccfc5ddda 100644
--- a/src/main/java/net/minecraft/core/block/RedstoneBlock.java
+++ b/src/main/java/net/minecraft/core/block/RedstoneBlock.java
@@ -31,7 +31,7 @@ public class RedstoneBlock extends Block
     @Override
     public boolean getDirectSignal(World world, int x, int y, int z, Side side)
     {
-        return false;
+        return getSignal(world, x, y, z, side);
     }
     
     @Override
diff --git a/src/main/java/net/minecraft/core/block/SpongeBlock.java b/src/main/java/net/minecraft/core/block/SpongeBlock.java
index 6507c428d..f583b79b5 100644
--- a/src/main/java/net/minecraft/core/block/SpongeBlock.java
+++ b/src/main/java/net/minecraft/core/block/SpongeBlock.java
@@ -6,13 +6,16 @@ package net.minecraft.core.block;
 
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.sound.SoundCategory;
+import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.Dimension;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.world.World;
 
+import java.util.Random;
+
 public class SpongeBlock extends Block
 {
-
+    final boolean isWet;
 	public SpongeBlock(String key, String namespaceId, int id, boolean isWet)
     {
         super(key, namespaceId, id, Material.sponge);
@@ -43,6 +46,7 @@ public class SpongeBlock extends Block
                     }
                 }
             }
+            world.setBlockWithNotify(x, y, z, Blocks.SPONGE_WET.id);
         }
     }
 
@@ -79,5 +83,32 @@ public class SpongeBlock extends Block
         }
 
     }
-    boolean isWet;
+
+    @Override
+    public void animationTick(World world, int x, int y, int z, Random rand) {
+        if (isWet) {
+            Side side = Side.sides[rand.nextInt(6)]; // Get random side
+            if (side == Side.TOP || world.isBlockOpaqueCube(x + side.getOffsetX(), y + side.getOffsetY(), z + side.getOffsetZ())) return;
+            float off1 = rand.nextFloat() * 0.9f + 0.05f;
+            float off2 = rand.nextFloat() * 0.9f + 0.05f;
+            float lOff = 0.1f; // Dumb offset to fix bad lighting
+            switch (side) {
+                case BOTTOM:
+                    world.spawnParticle("dripWater", x + off1, y - lOff, z + off2, 0, 0, 0, 0);
+                    break;
+                case NORTH:
+                    world.spawnParticle("dripWater", x + off1, y + off2, z - lOff, 0, 0, 0, 0);
+                    break;
+                case SOUTH:
+                    world.spawnParticle("dripWater", x + off1, y + off2, z + 1 + lOff, 0, 0, 0, 0);
+                    break;
+                case WEST:
+                    world.spawnParticle("dripWater", x - lOff, y + off1, z + off2, 0, 0, 0, 0);
+                    break;
+                case EAST:
+                    world.spawnParticle("dripWater", x + 1 + lOff, y + off1, z + off2, 0, 0, 0, 0);
+                    break;
+            }
+        }
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/TrapDoorBlock.java b/src/main/java/net/minecraft/core/block/TrapDoorBlock.java
index be570f0d0..719283f39 100644
--- a/src/main/java/net/minecraft/core/block/TrapDoorBlock.java
+++ b/src/main/java/net/minecraft/core/block/TrapDoorBlock.java
@@ -8,6 +8,7 @@ import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.tag.ItemTags;
 import net.minecraft.core.util.helper.Direction;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.util.phys.AABB;
 import net.minecraft.core.util.phys.HitResult;
@@ -19,7 +20,7 @@ import net.minecraft.core.world.WorldSource;
 //            Block, Material, IBlockAccess, World, 
 //            AxisAlignedBB, Player, Vec3D, MovingObjectPosition
 
-public class TrapDoorBlock extends Block {
+public class TrapDoorBlock extends Block implements IPaintable {
     public TrapDoorBlock(String key, String namespaceId, int id, Material material) {
         super(key, namespaceId, id, material);
         float f = 0.5F;
@@ -214,4 +215,11 @@ public class TrapDoorBlock extends Block {
         if (metadata == 3) return Direction.WEST;
         return Direction.NONE;
     }
+
+    @Override
+    public void setColor(World world, int x, int y, int z, DyeColor color) {
+        final int meta = world.getBlockMetadata(x, y, z);
+        world.setBlockAndMetadata(x, y, z, Blocks.TRAPDOOR_PLANKS_PAINTED.id, meta);
+        ((IPaintable) Blocks.TRAPDOOR_PLANKS_PAINTED).setColor(world, x, y, z, color);
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/WoolBlock.java b/src/main/java/net/minecraft/core/block/WoolBlock.java
index 315025490..a97d0cb8b 100644
--- a/src/main/java/net/minecraft/core/block/WoolBlock.java
+++ b/src/main/java/net/minecraft/core/block/WoolBlock.java
@@ -5,10 +5,11 @@ import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.util.helper.DyeColor;
 import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.world.World;
 
-public class WoolBlock extends Block
+public class WoolBlock extends Block implements IPainted
 {
     public WoolBlock(String key, String namespaceId, int id) {
 
@@ -25,4 +26,24 @@ public class WoolBlock extends Block
     {
         return new ItemStack[] { new ItemStack(this, 1, meta) };
     }
+
+    @Override
+    public DyeColor fromMetadata(int meta) {
+        return DyeColor.colorFromBlockMeta(meta);
+    }
+
+    @Override
+    public int toMetadata(DyeColor color) {
+        return color.blockMeta;
+    }
+
+    @Override
+    public int stripColorFromMetadata(int meta) {
+        return 0;
+    }
+
+    @Override
+    public void removeDye(World world, int x, int y, int z) {
+        world.setBlockMetadataWithNotify(x, y, z, 0);
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/entity/BlastFurnaceBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/BlastFurnaceBlockEntity.java
index 62473f635..5b6b34e58 100644
--- a/src/main/java/net/minecraft/core/block/entity/BlastFurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/BlastFurnaceBlockEntity.java
@@ -92,7 +92,7 @@ public class BlastFurnaceBlockEntity extends FurnaceBlockEntity
         {
         	if(worldObj == null || worldObj.getBlockId(x, y, z) == Blocks.FURNACE_BLAST_IDLE.id) {
             	if(currentBurnTime == 0 && furnaceItemStacks[0] == null) {
-            		if(furnaceItemStacks[1] != null && furnaceItemStacks[1].itemID == Blocks.NETHERRACK.id) {
+            		if(furnaceItemStacks[1] != null && furnaceItemStacks[1].itemID == Blocks.COBBLE_NETHERRACK.id) {
             			furnaceItemStacks[1].stackSize--;
             			if(furnaceItemStacks[1].stackSize <= 0) furnaceItemStacks[1] = null;
             			updateFurnace(true);
diff --git a/src/main/java/net/minecraft/core/block/entity/FurnaceBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/FurnaceBlockEntity.java
index 517a1590b..c88aeb46b 100644
--- a/src/main/java/net/minecraft/core/block/entity/FurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/FurnaceBlockEntity.java
@@ -183,7 +183,7 @@ public class FurnaceBlockEntity extends BlockEntity
         {
         	if(worldObj == null || worldObj.getBlockId(x, y, z) == Blocks.FURNACE_STONE_IDLE.id) {
             	if(currentBurnTime == 0 && furnaceItemStacks[0] == null) {
-            		if(furnaceItemStacks[1] != null && furnaceItemStacks[1].itemID == Blocks.NETHERRACK.id) {
+            		if(furnaceItemStacks[1] != null && furnaceItemStacks[1].itemID == Blocks.COBBLE_NETHERRACK.id) {
             			furnaceItemStacks[1].stackSize--;
             			if(furnaceItemStacks[1].stackSize <= 0) furnaceItemStacks[1] = null;
             			updateFurnace(true);
diff --git a/src/main/java/net/minecraft/core/block/entity/TrommelBlockEntity.java b/src/main/java/net/minecraft/core/block/entity/TrommelBlockEntity.java
index f02f1a0da..ad118d63f 100644
--- a/src/main/java/net/minecraft/core/block/entity/TrommelBlockEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TrommelBlockEntity.java
@@ -180,7 +180,7 @@ public class TrommelBlockEntity extends BlockEntity
         {
         	if(worldObj == null || worldObj.getBlockId(x, y, z) == Blocks.TROMMEL_IDLE.id) {
             	if(currentItemBurnTime == 0 && itemStacks[0] == null) {
-            		if(itemStacks[4] != null && itemStacks[4].itemID == Blocks.NETHERRACK.id) {
+            		if(itemStacks[4] != null && itemStacks[4].itemID == Blocks.COBBLE_NETHERRACK.id) {
             			itemStacks[4].stackSize--;
             			if(itemStacks[4].stackSize <= 0) itemStacks[4] = null;
             			if (worldObj != null) {
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 6f968f6ed..f73bf4200 100644
--- a/src/main/java/net/minecraft/core/data/registry/Registries.java
+++ b/src/main/java/net/minecraft/core/data/registry/Registries.java
@@ -64,8 +64,8 @@ public class Registries extends Registry<Registry<?>>
         RECIPE_TYPES.register("minecraft:smelting/blast", RecipeEntryBlastFurnace.class);
         RECIPE_TYPES.register("minecraft:trommeling", RecipeEntryTrommel.class);
 
-        ITEM_GROUPS.register("minecraft:stones",stackListOf(Blocks.STONE, Blocks.BASALT, Blocks.LIMESTONE, Blocks.GRANITE));
-        ITEM_GROUPS.register("minecraft:cobblestones",stackListOf(Blocks.COBBLE_STONE, Blocks.COBBLE_BASALT, Blocks.COBBLE_LIMESTONE, Blocks.COBBLE_GRANITE, Blocks.COBBLE_PERMAFROST));
+        ITEM_GROUPS.register("minecraft:stones",stackListOf(Blocks.STONE, Blocks.BASALT, Blocks.LIMESTONE, Blocks.GRANITE, Blocks.PERMAFROST, Blocks.NETHERRACK));
+        ITEM_GROUPS.register("minecraft:cobblestones",stackListOf(Blocks.COBBLE_STONE, Blocks.COBBLE_BASALT, Blocks.COBBLE_LIMESTONE, Blocks.COBBLE_GRANITE, Blocks.COBBLE_PERMAFROST, Blocks.COBBLE_NETHERRACK));
         ITEM_GROUPS.register("minecraft:planks",stackListOf(Blocks.PLANKS_OAK, new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 0), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 1), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 2), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 3), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 4), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 5), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 6), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 7), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 8), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 9), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 10), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 11), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 12), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 13), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 14), new ItemStack(Blocks.PLANKS_OAK_PAINTED, 1, 15)));
         ITEM_GROUPS.register("minecraft:grasses",stackListOf(Blocks.GRASS, Blocks.GRASS_RETRO));
         ITEM_GROUPS.register("minecraft:dirt",stackListOf(Blocks.DIRT, Blocks.DIRT_SCORCHED));
diff --git a/src/main/java/net/minecraft/core/item/Items.java b/src/main/java/net/minecraft/core/item/Items.java
index 7a9d62652..413bd6b27 100644
--- a/src/main/java/net/minecraft/core/item/Items.java
+++ b/src/main/java/net/minecraft/core/item/Items.java
@@ -188,6 +188,7 @@ public final class Items {
     public static Item FOOD_PUMPKIN_PIE;
     public static Item WAND_MONSTER_SPAWNER;
     public static Item DOOR_STEEL;
+    public static Item PAINTBRUSH;
     public static void init(){
         setupItems();
         initStats();
@@ -393,5 +394,6 @@ public final class Items {
         FOOD_PUMPKIN_PIE = (new PlaceableItem("food.pumpkin_pie", "minecraft:item/food_pumpkin_pie", 16535, Blocks.PUMPKIN_PIE)).setMaxStackSize(1);
         WAND_MONSTER_SPAWNER = (new SpawnerWandItem("wand.monster", "minecraft:item/wand_monster", 16536)).setMaxStackSize(1);
         DOOR_STEEL = (new DoorItem("door.steel", "minecraft:item/door_steel", 16537, Blocks.DOOR_STEEL_BOTTOM, Blocks.DOOR_STEEL_TOP));
+        PAINTBRUSH = new PaintBrushItem("paintbrush", "minecraft:item/paintbrush", 16538);
     }
 }
diff --git a/src/main/java/net/minecraft/core/item/PaintBrushItem.java b/src/main/java/net/minecraft/core/item/PaintBrushItem.java
new file mode 100644
index 000000000..13531e0f1
--- /dev/null
+++ b/src/main/java/net/minecraft/core/item/PaintBrushItem.java
@@ -0,0 +1,115 @@
+package net.minecraft.core.item;
+
+import com.mojang.nbt.CompoundTag;
+import net.minecraft.core.block.Block;
+import net.minecraft.core.block.IPaintable;
+import net.minecraft.core.entity.player.Player;
+import net.minecraft.core.player.inventory.slot.Slot;
+import net.minecraft.core.util.helper.DyeColor;
+import net.minecraft.core.util.helper.Side;
+import net.minecraft.core.world.World;
+
+public class PaintBrushItem extends Item {
+    private static final int DAMAGE_PER_DYE = 8;
+
+    public PaintBrushItem(String translationKey, String namespaceId, int id) {
+        super(translationKey, namespaceId, id);
+        setMaxStackSize(1);
+        setMaxDamage(64);
+    }
+
+    @Override
+    public boolean onUseItemOnBlock(ItemStack itemstack, Player entityplayer, World world, int blockX, int blockY, int blockZ, Side side, double xPlaced, double yPlaced) {
+        if (itemstack.getMetadata() >= itemstack.getMaxDamage()) {
+            return false;
+        }
+
+        final int id = world.getBlockId(blockX, blockY, blockZ);
+        final Block block = Block.getBlock(id);
+
+        if (block instanceof IPaintable) {
+            final IPaintable paintable = (IPaintable) block;
+            final DyeColor color = getColor(itemstack);
+            if (color != null) {
+                paintable.setColor(world, blockX, blockY, blockZ, color);
+                itemstack.damageItem(1, entityplayer);
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean hasInventoryInteraction() {
+        return true;
+    }
+
+    @Override
+    public ItemStack onInventoryInteract(Player player, Slot slot, ItemStack stackInSlot, boolean isItemGrabbed) {
+        if (isItemGrabbed) {
+            return stackInSlot;
+        }
+
+        final DyeColor currentColor = getColor(stackInSlot);
+        final int dyeCount = getDyeCount(stackInSlot);
+
+        final ItemStack grabbedItem = player.inventory.getHeldItemStack();
+
+        if (grabbedItem != null && grabbedItem.getItem() instanceof DyeItem) {
+            final DyeColor newColor = DyeColor.colorFromItemMeta(grabbedItem.getMetadata());
+            if (currentColor != newColor) {
+                setColor(stackInSlot, newColor);
+                setDyeCount(stackInSlot, DAMAGE_PER_DYE);
+                grabbedItem.stackSize--;
+                if (grabbedItem.stackSize <= 0) {
+                    player.inventory.setHeldItemStack(null);
+                }
+            } else {
+                final int newDyeCount = Math.min(dyeCount + DAMAGE_PER_DYE, stackInSlot.getMaxDamage());
+                setDyeCount(stackInSlot, newDyeCount);
+                grabbedItem.stackSize--;
+                if (grabbedItem.stackSize <= 0) {
+                    player.inventory.setHeldItemStack(null);
+                }
+            }
+        }
+
+        return stackInSlot;
+    }
+
+    @Override
+    public boolean showFullDurability() {
+        return true;
+    }
+
+    public int getDyeCount(ItemStack stack) {
+        return stack.getMaxDamage() - stack.getMetadata();
+    }
+
+    public void setDyeCount(ItemStack stack, int count) {
+        stack.setMetadata(stack.getMaxDamage() - count);
+    }
+
+    public DyeColor getColor(ItemStack stack) {
+        CompoundTag tag = stack.getData();
+        if (tag.containsKey("Color")) {
+            final int color = tag.getInteger("Color");
+            if (color < 0) {
+                return null;
+            }
+            return DyeColor.colorFromItemMeta(color & 0x0F);
+        } else {
+            return null;
+        }
+    }
+
+    public void setColor(ItemStack stack, DyeColor color) {
+        CompoundTag tag = stack.getData();
+        if (color == null) {
+            tag.putInt("Color", -1);
+        } else {
+            tag.putInt("Color", color.itemMeta);
+        }
+    }
+}
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/ChunkDecoratorNether.java b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/ChunkDecoratorNether.java
index b0c260f8f..992d35d66 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/ChunkDecoratorNether.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/ChunkDecoratorNether.java
@@ -83,6 +83,13 @@ public class ChunkDecoratorNether
             (new WorldFeatureLake(Blocks.FLUID_LAVA_STILL.id)).place(world, rand, xf, yf, zf);
         }
 
+        for (int i = 0; i < /*20*/80; i++) {
+            int xf = x + rand.nextInt(16);
+            int yf = minY + rand.nextInt(rangeY);
+            int zf = z + rand.nextInt(16);
+            (new WorldFeaturePumice(32)).place(world, rand, xf, yf, zf);
+        }
+
         SandBlock.fallInstantly = false;
 
     }
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/SurfaceGeneratorNether.java b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/SurfaceGeneratorNether.java
index 5a9b74363..1d4d3f013 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/SurfaceGeneratorNether.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/nether/SurfaceGeneratorNether.java
@@ -1,6 +1,5 @@
 package net.minecraft.core.world.generate.chunk.perlin.nether;
 
-import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.world.World;
 import net.minecraft.core.world.chunk.Chunk;
@@ -93,7 +92,7 @@ public class SurfaceGeneratorNether
                             }
                             if(generateGravelBeach)
                             {
-                                fillerBlock = (short) Blocks.NETHERRACK.id;
+                                fillerBlock = (short) Blocks.COBBLE_NETHERRACK.id;
                             }
                             if(generateSandBeach)
                             {
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureClay.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureClay.java
index 26f5a7f82..2744a41a7 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureClay.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureClay.java
@@ -13,7 +13,11 @@ import java.util.Random;
 //            MathHelper
 
 public class WorldFeatureClay extends WorldFeature
-{	public WorldFeatureClay(int numberOfBlocks) {
+{
+    private int clayBlockId;
+    private int numberOfBlocks;
+    private int generateInId;
+    public WorldFeatureClay(int numberOfBlocks) {
 		this(numberOfBlocks, Blocks.SAND);
 	}
 
@@ -88,8 +92,5 @@ public class WorldFeatureClay extends WorldFeature
         return true;
     }
 
-    private int clayBlockId;
-    private int numberOfBlocks;
-    private int generateInId;
 }
 
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFire.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFire.java
index 20f4e14f8..20762b94b 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFire.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureFire.java
@@ -1,6 +1,5 @@
 package net.minecraft.core.world.generate.feature;
 
-import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.world.World;
 
@@ -24,7 +23,7 @@ public class WorldFeatureFire extends WorldFeature
             int i1 = (x + random.nextInt(8)) - random.nextInt(8);
             int j1 = (y + random.nextInt(4)) - random.nextInt(4);
             int k1 = (z + random.nextInt(8)) - random.nextInt(8);
-            if(world.isAirBlock(i1, j1, k1) && world.getBlockId(i1, j1 - 1, k1) == Blocks.NETHERRACK.id)
+            if(world.isAirBlock(i1, j1, k1) && world.getBlockId(i1, j1 - 1, k1) == Blocks.COBBLE_NETHERRACK.id)
             {
                 world.setBlockWithNotify(i1, j1, k1, Blocks.FIRE.id);
             }
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureGlowstoneA.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureGlowstoneA.java
index 39760661e..172e4e42c 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureGlowstoneA.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureGlowstoneA.java
@@ -1,6 +1,5 @@
 package net.minecraft.core.world.generate.feature;
 
-import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.world.World;
 
@@ -23,7 +22,7 @@ public class WorldFeatureGlowstoneA extends WorldFeature
         {
             return false;
         }
-        if(world.getBlockId(x, y + 1, z) != Blocks.NETHERRACK.id)
+        if(world.getBlockId(x, y + 1, z) != Blocks.COBBLE_NETHERRACK.id)
         {
             return false;
         }
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureGlowstoneB.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureGlowstoneB.java
index 5b3f778be..737d4e37e 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureGlowstoneB.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureGlowstoneB.java
@@ -1,6 +1,5 @@
 package net.minecraft.core.world.generate.feature;
 
-import net.minecraft.core.block.Block;
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.world.World;
 
@@ -23,7 +22,7 @@ public class WorldFeatureGlowstoneB extends WorldFeature
         {
             return false;
         }
-        if(world.getBlockId(x, y + 1, z) != Blocks.NETHERRACK.id)
+        if(world.getBlockId(x, y + 1, z) != Blocks.COBBLE_NETHERRACK.id)
         {
             return false;
         }
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureNetherLava.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureNetherLava.java
index 252887b3c..1e51a1207 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureNetherLava.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureNetherLava.java
@@ -21,32 +21,32 @@ public class WorldFeatureNetherLava extends WorldFeature
     @Override
 	public boolean place(World world, Random random, int x, int y, int z)
     {
-        if(world.getBlockId(x, y + 1, z) != Blocks.NETHERRACK.id)
+        if(world.getBlockId(x, y + 1, z) != Blocks.COBBLE_NETHERRACK.id)
         {
             return false;
         }
-        if(world.getBlockId(x, y, z) != 0 && world.getBlockId(x, y, z) != Blocks.NETHERRACK.id)
+        if(world.getBlockId(x, y, z) != 0 && world.getBlockId(x, y, z) != Blocks.COBBLE_NETHERRACK.id)
         {
             return false;
         }
         int l = 0;
-        if(world.getBlockId(x - 1, y, z) == Blocks.NETHERRACK.id)
+        if(world.getBlockId(x - 1, y, z) == Blocks.COBBLE_NETHERRACK.id)
         {
             l++;
         }
-        if(world.getBlockId(x + 1, y, z) == Blocks.NETHERRACK.id)
+        if(world.getBlockId(x + 1, y, z) == Blocks.COBBLE_NETHERRACK.id)
         {
             l++;
         }
-        if(world.getBlockId(x, y, z - 1) == Blocks.NETHERRACK.id)
+        if(world.getBlockId(x, y, z - 1) == Blocks.COBBLE_NETHERRACK.id)
         {
             l++;
         }
-        if(world.getBlockId(x, y, z + 1) == Blocks.NETHERRACK.id)
+        if(world.getBlockId(x, y, z + 1) == Blocks.COBBLE_NETHERRACK.id)
         {
             l++;
         }
-        if(world.getBlockId(x, y - 1, z) == Blocks.NETHERRACK.id)
+        if(world.getBlockId(x, y - 1, z) == Blocks.COBBLE_NETHERRACK.id)
         {
             l++;
         }
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureOre.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureOre.java
index dcd24662e..bb6220b87 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureOre.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeatureOre.java
@@ -84,7 +84,7 @@ public class WorldFeatureOre extends WorldFeature
                         	else
                         	{
                         		int id = world.getBlockId(x, y, z);
-                        		if (id == Blocks.STONE.id || id == Blocks.NETHERRACK.id ||
+                        		if (id == Blocks.STONE.id || id == Blocks.COBBLE_NETHERRACK.id ||
                         				id == Blocks.BASALT.id || id == Blocks.LIMESTONE.id ||
                         				id == Blocks.GRANITE.id)
                         		{
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/WorldFeaturePumice.java b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeaturePumice.java
new file mode 100644
index 000000000..41c0c9f24
--- /dev/null
+++ b/src/main/java/net/minecraft/core/world/generate/feature/WorldFeaturePumice.java
@@ -0,0 +1,88 @@
+package net.minecraft.core.world.generate.feature;
+
+import net.minecraft.core.block.Block;
+import net.minecraft.core.block.Blocks;
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.util.helper.MathHelper;
+import net.minecraft.core.world.World;
+
+import java.util.Random;
+
+public class WorldFeaturePumice extends WorldFeature{
+    private int numberOfBlocks;
+    private int generateInId;
+    @MethodParametersAnnotation(names = {"numberOfBlocks"})
+    public WorldFeaturePumice(int numberOfBlocks) {
+        this(numberOfBlocks, Blocks.COBBLE_NETHERRACK);
+    }
+
+    @MethodParametersAnnotation(names = {"numberOfBlocks", "block"})
+    public WorldFeaturePumice(int numberOfBlocks, Block block)
+    {
+        this.numberOfBlocks = numberOfBlocks;
+        this.generateInId = block.id;
+    }
+
+    @Override
+    public boolean place(World world, Random random, int x, int y, int z)
+    {
+        if(world.getBlockMaterial(x, y, z) != Material.lava || world.getBlockId(x, y + 1, z) != 0)
+        {
+            return false;
+        }
+        float f = random.nextFloat() * MathHelper.PI;
+        double d = (float)(x + 8) + (MathHelper.sin(f) * (float)numberOfBlocks) / 8F;
+        double d1 = (float)(x + 8) - (MathHelper.sin(f) * (float)numberOfBlocks) / 8F;
+        double d2 = (float)(z + 8) + (MathHelper.cos(f) * (float)numberOfBlocks) / 8F;
+        double d3 = (float)(z + 8) - (MathHelper.cos(f) * (float)numberOfBlocks) / 8F;
+        double d4 = y - random.nextInt(2) + 1;
+        double d5 = y - random.nextInt(2) + 1;
+        for(int l = 0; l <= numberOfBlocks; l++)
+        {
+            double d6 = d + ((d1 - d) * (double)l) / (double)numberOfBlocks;
+            double d7 = d4 + ((d5 - d4) * (double)l) / (double)numberOfBlocks;
+            double d8 = d2 + ((d3 - d2) * (double)l) / (double)numberOfBlocks;
+            double d9 = (random.nextDouble() * (double)numberOfBlocks) / 16D;
+            double d10 = (double)(MathHelper.sin(((float)l * MathHelper.PI) / (float)numberOfBlocks) + 1.0F) * d9 + 1.0D;
+            double d11 = (double)(MathHelper.sin(((float)l * MathHelper.PI) / (float)numberOfBlocks) + 1.0F) * d9 + 1.0D;
+            int i1 = MathHelper.floor(d6 - d10 / 2D);
+            int j1 = MathHelper.floor(d7 - d11 / 2D);
+            int k1 = MathHelper.floor(d8 - d10 / 2D);
+            int l1 = MathHelper.floor(d6 + d10 / 2D);
+            int i2 = MathHelper.floor(d7 + d11 / 2D);
+            int j2 = MathHelper.floor(d8 + d10 / 2D);
+            for(int k2 = i1; k2 <= l1; k2++)
+            {
+                double d12 = (((double)k2 + 0.5D) - d6) / (d10 / 2D);
+                if(d12 * d12 >= 1.0D)
+                {
+                    continue;
+                }
+                for(int l2 = j1; l2 <= i2; l2++)
+                {
+                    double d13 = (((double)l2 + 0.5D) - d7) / (d11 / 2D);
+                    if(d12 * d12 + d13 * d13 >= 1.0D)
+                    {
+                        continue;
+                    }
+                    for(int i3 = k1; i3 <= j2; i3++)
+                    {
+                        double d14 = (((double)i3 + 0.5D) - d8) / (d10 / 2D);
+                        if(d12 * d12 + d13 * d13 + d14 * d14 < 1.0D)
+                        {
+                            if(world.getBlockId(k2, l2, i3) == generateInId)
+                            {
+                                world.setBlock(k2, l2, i3, Blocks.PUMICE_WET.id);
+                            }
+                        }
+                    }
+
+                }
+
+            }
+
+        }
+
+        return true;
+    }
+}
diff --git a/src/main/java/net/minecraft/core/world/type/nether/WorldTypeNether.java b/src/main/java/net/minecraft/core/world/type/nether/WorldTypeNether.java
index 1fb276125..118103f9a 100644
--- a/src/main/java/net/minecraft/core/world/type/nether/WorldTypeNether.java
+++ b/src/main/java/net/minecraft/core/world/type/nether/WorldTypeNether.java
@@ -22,7 +22,7 @@ public class WorldTypeNether
         return Properties.of(translationKey)
                 .brightnessRamp(getLightRamp())
                 .oceanBlock(Blocks.FLUID_LAVA_STILL)
-                .fillerBlock(Blocks.NETHERRACK)
+                .fillerBlock(Blocks.COBBLE_NETHERRACK)
                 .noClouds()
                 .noSky()
                 .withCeiling()
diff --git a/src/main/resources/assets/minecraft/textures/block/brick_netherrack.png b/src/main/resources/assets/minecraft/textures/block/brick_netherrack.png
new file mode 100644
index 000000000..ea0703178
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/brick_netherrack.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/carved_netherrack.png b/src/main/resources/assets/minecraft/textures/block/carved_netherrack.png
new file mode 100644
index 000000000..e2a691e8d
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/carved_netherrack.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/cobbled_netherrack.png b/src/main/resources/assets/minecraft/textures/block/cobbled_netherrack.png
new file mode 100644
index 000000000..57091c4db
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/cobbled_netherrack.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/netherrack_igneous.png b/src/main/resources/assets/minecraft/textures/block/cobbled_netherrack_igneous.png
similarity index 100%
rename from src/main/resources/assets/minecraft/textures/block/netherrack_igneous.png
rename to src/main/resources/assets/minecraft/textures/block/cobbled_netherrack_igneous.png
diff --git a/src/main/resources/assets/minecraft/textures/block/netherrack_igneous_overlay.png b/src/main/resources/assets/minecraft/textures/block/cobbled_netherrack_igneous_overlay.png
similarity index 100%
rename from src/main/resources/assets/minecraft/textures/block/netherrack_igneous_overlay.png
rename to src/main/resources/assets/minecraft/textures/block/cobbled_netherrack_igneous_overlay.png
diff --git a/src/main/resources/assets/minecraft/textures/block/netherrack_mossy.png b/src/main/resources/assets/minecraft/textures/block/cobbled_netherrack_mossy.png
similarity index 100%
rename from src/main/resources/assets/minecraft/textures/block/netherrack_mossy.png
rename to src/main/resources/assets/minecraft/textures/block/cobbled_netherrack_mossy.png
diff --git a/src/main/resources/assets/minecraft/textures/block/netherrack.png b/src/main/resources/assets/minecraft/textures/block/netherrack.png
index 57091c4db..824140246 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/netherrack.png and b/src/main/resources/assets/minecraft/textures/block/netherrack.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/polished_netherrack_side.png b/src/main/resources/assets/minecraft/textures/block/polished_netherrack_side.png
new file mode 100644
index 000000000..71f15d139
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/polished_netherrack_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/polished_netherrack_top.png b/src/main/resources/assets/minecraft/textures/block/polished_netherrack_top.png
new file mode 100644
index 000000000..8b2278e50
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/polished_netherrack_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/pumice.png b/src/main/resources/assets/minecraft/textures/block/pumice.png
new file mode 100644
index 000000000..107480e3c
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/pumice.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/pumice_overlay.png b/src/main/resources/assets/minecraft/textures/block/pumice_overlay.png
new file mode 100644
index 000000000..5a27b3bad
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/pumice_overlay.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush.png b/src/main/resources/assets/minecraft/textures/item/paintbrush.png
new file mode 100644
index 000000000..f60affa9f
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_black.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_black.png
new file mode 100644
index 000000000..3e528edf9
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_black.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_blue.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_blue.png
new file mode 100644
index 000000000..ba5b21e6a
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_blue.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_brown.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_brown.png
new file mode 100644
index 000000000..829446682
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_brown.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_cyan.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_cyan.png
new file mode 100644
index 000000000..ecd1049be
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_cyan.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_gray.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_gray.png
new file mode 100644
index 000000000..3790f9630
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_gray.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_green.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_green.png
new file mode 100644
index 000000000..0274b0cae
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_green.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_lightblue.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_lightblue.png
new file mode 100644
index 000000000..7636c4e2b
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_lightblue.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_lime.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_lime.png
new file mode 100644
index 000000000..54efdc1d7
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_lime.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_magenta.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_magenta.png
new file mode 100644
index 000000000..d41fa633c
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_magenta.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_orange.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_orange.png
new file mode 100644
index 000000000..aad7c5a20
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_orange.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_pink.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_pink.png
new file mode 100644
index 000000000..1e290e50e
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_pink.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_purple.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_purple.png
new file mode 100644
index 000000000..151d63155
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_purple.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_red.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_red.png
new file mode 100644
index 000000000..355ae9a8f
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_red.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_silver.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_silver.png
new file mode 100644
index 000000000..bacba54c8
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_silver.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_white.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_white.png
new file mode 100644
index 000000000..ad5b3361b
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_white.png differ
diff --git a/src/main/resources/assets/minecraft/textures/item/paintbrush_yellow.png b/src/main/resources/assets/minecraft/textures/item/paintbrush_yellow.png
new file mode 100644
index 000000000..c66c94c0a
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/item/paintbrush_yellow.png differ
diff --git a/src/main/resources/credits.txt b/src/main/resources/credits.txt
index bf40d4e61..10eb92962 100644
--- a/src/main/resources/credits.txt
+++ b/src/main/resources/credits.txt
@@ -25,6 +25,9 @@ Snowman64
 AndroidDr (Pedro270707)
 Bigjango
 Tocinin
+LukeIsStuff
+Zaraz7
+Doop (brokendoop)
 
 !Thank you for playing
 !Better than Adventure!
\ No newline at end of file
