Spigot
EMC POM changes
MC Version 1.4.6

Reverts mc version setting to 1.4.6 so 1.4.6 plugins still work
Misc EMC Changes

Only spawn 1 ocelot ever from eggs.
Load custom permissions before plugins
Unload plugins after everything else
Fix boat wood gen exploit
Remove CraftBukkit "Feature" of ItemStack's having infinite use if less than 0 stack size.
Color name tags to match list
Use 1.4.5 Dig Speed
Ender Crystals do not set fire
Mob Spawning Events

Add 2 events for better control of mob spawning (Natural and Spawners) This allows us a much more powerful control over spawning and improve performance
PlayerUseItem Event

This lets us control when an item is consumed and change the item.
EMC Anvil Tweaks

Make Items not have a repair cost increase due to Anvil usage. Renaming is only 5 levels, combines include free renames.
Entity Tracking Ranges

This will let you configure how far to track entities in range from players, so that the entity does not render on the client if out of this range.
This has multiple benefits:

1) Less bandwidth. Not sending update packets for entities that are not even close to a player, or even close enough to clearly see.
2) Less lag by maps in item frames - Default range is 160 blocks... Many players can track that item frame and cause lag and not even see it.
3) Less lag in general - Less work for the server to do
4) Less client lag - Not trying to render distant item frames and paintings and entities will reduce entity count on the client, which is major for shop/town worlds which may use tons of item frames.
Hidden Item Meta

This adds the ability to store hidden metadata in item lore.

Simply set a line to "&&::META" and every blank line before, that line, and every line after will be hidden from view on the client.

for example, you can set &&::META on line 20, and there will not be 19 blank lines before it.
Then you can store Data on 21+
Overhaul Tile Entity Ticking

TileEntity Ticking would call isChunkLoaded for every single tile entity, which can be expensive
Also, the worlds tile entity list was used only to have a controlled list for what tile entity needs to tick and protect it from modification during ticking.

With a simple watcher for modification instructions, we can remove usage of the master list.
This reduces memory usage
This also reduces lag by List resizing (which may happen often on large servers)
This also lets the JVM have better CPU cacheing potential by working on the same area at a time.

We now simply iterate over every loaded chunk (and check that its not in the unload queue, much faster than checking is a chunk loaded), then iterate its tile entity list
NIOM - NIO Manager

Alternative to Netty
improve the existing network manager using Blocking NIO instead of IO (more effecient code)
Writes use a direct memory buffer for zero copy writes, more stable memory usage.

Reimplement Low Priority Queue
Optimized Packet PacketQueue System that supports instant send notification to the writer thread
Removed packet queue walking since it will very unlikely ever be hit now.
Writer thread will now stay asleep until it has work to do
Network threads are no longer interrupted every tick, letting them sleep as much as possible
Block Meta API

This adds an API for getting and setting PERSISTENT MetaData on a block level.

Meta is is provided in a simple Map/List setup and does not expose raw NBT access.
Chunk Save Reattempt

We commonly have "Stream Closed" errors on chunk saving, so this code should re-try to save the chunk in the event of failure and hopefully prevent rollbacks.