Disco balls!

Throw a block of stained glass and a lamp in a pile to get a disco ball!

/summon FallingSand ~ ~1 ~ {Block:redstone_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:fill ~ ~ ~1 ~ ~-22 ~1 redstone_block},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:fill ~ ~2 ~ ~ ~-23 ~1 air},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~3 ~-4 ~ {Block:command_block,Time:1,TileEntityData:{Command:fill ~ ~ ~-1 ~6 ~ ~1 coal_block}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard objectives add craft dummy},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~4 ~-15 ~-1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=5,score_craft=5] slot.armor.head stained_glass 1 13},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @e[type=Item] craft 401 {OnGround:1b,Item:{id:"minecraft:redstone_lamp"}}},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~5 ~-14 ~-1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=7,score_craft=7] slot.armor.head stained_glass 1 3},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/execute @e[type=Item,score_craft_min=402,score_craft=402] ~ ~ ~ execute @e[type=Item,r=1,score_craft_min=401,score_craft=401] ~ ~ ~ summon Item ~ ~ ~ {Item:{id:"minecraft:spawn_egg",Count:1b,Damage:61,tag:{display:{Name:Disco Ball}}}}},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~6 ~-13 ~-1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=8,score_craft=8] slot.armor.head stained_glass 1 10},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @e[type=Blaze] craft 1 {CustomName:Disco Ball}},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~7 ~-12 ~-1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @e[type=ArmorStand,name=DiscoBall,score_craft_min=9] craft 0},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/execute @e[type=Blaze,score_craft_min=1] ~ ~ ~ setblock ~ ~ ~ glass},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~8 ~-11 ~-1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/execute @e[type=ArmorStand,name=DiscoBall] ~ ~ ~ detect ~ ~1 ~ air 0 summon Item ~ ~1 ~ {Item:{id:"minecraft:spawn_egg",Count:1b,Damage:61,tag:{display:{Name:Disco Ball}}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=1,score_craft=1] slot.armor.head stained_glass 1 14},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~9 ~-10 ~-1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/execute @e[type=ArmorStand,name=DiscoBall] ~ ~ ~ detect ~ ~1 ~ air 0 kill @e[c=1]},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=3,score_craft=3] slot.armor.head stained_glass 1 4},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~4 ~-10 ~1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=6,score_craft=6] slot.armor.head stained_glass 1 9},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players set @e[type=Item] craft 402 {OnGround:1b,Item:{id:"minecraft:stained_glass"}}},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~5 ~-9 ~1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=7,score_craft=7] slot.armor.head stained_glass 1 11},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/execute @e[type=Item,score_craft_min=402,score_craft=402] ~ ~ ~ execute @e[type=Item,r=1,score_craft_min=401,score_craft=401] ~ ~ ~ kill @e[type=Item,r=2,score_craft_min=401,score_craft=402]},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~6 ~-8 ~1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=9,score_craft=9] slot.armor.head stained_glass 1 2},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/execute @e[type=Blaze,score_craft_min=1] ~ ~ ~ summon ArmorStand ~ ~-1 ~ {CustomName:DiscoBall,Invulnerable:1,NoGravity:1,Marker:1,Invisible:1}},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~7 ~-7 ~1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:tp @e[type=Blaze,score_craft_min=1] ~ ~-1000 ~},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/scoreboard players add @e[type=ArmorStand,name=DiscoBall] craft 1},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~8 ~-6 ~1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/execute @e[type=ArmorStand,name=DiscoBall] ~ ~ ~ detect ~ ~1 ~ air 0 particle flame ~ ~ ~ 0 0 0 .01 10},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=2,score_craft=2] slot.armor.head stained_glass 1 1},Time:1,}}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:summon FallingSand ~9 ~-5 ~1 {Block:coal_block,Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:/replaceitem entity @e[type=ArmorStand,name=DiscoBall,score_craft_min=4,score_craft=4] slot.armor.head stained_glass 1 5},Time:1,}}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:gamerule commandBlockOutput false},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:fill ~3 ~-4 ~ ~9 ~-3 ~ redstone_block},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:setblock ~3 ~-3 ~-1 command_block 0 replace {Command:fill ~ ~ ~1 ~6 ~1 ~1 stone 0 replace redstone_block}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:setblock ~3 ~-2 ~1 command_block 0 replace {Command:fill ~ ~ ~-1 ~6 ~1 ~-1 redstone_block 0 replace stone}},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:fill ~2 ~-1 ~-2 ~10 ~0 ~2 iron_bars 0 replace coal_block},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:fill ~3 ~ ~-1 ~9 ~4 ~1 air 0 replace coal_block},Time:1,Riding:{id:FallingSand,Block:command_block,TileEntityData:{Command:fill ~2 ~ ~-2 ~10 ~3 ~2 coal_block},Time:1,Riding:{id:FallingSand,Block:stone,Time:1}}}}}}}}}}}}}}}}}}}}}}}}}