Rejoice, everyone! I have good news and bad news! Good news? Push flags work as Inherent Flags, but more importantly... I MADE A SCRIPT FOR THE CANE OF SOMARIA. AND IT WORKS!!!!

Code:
// Cane of Somaria- Changes certain attributes of FFC 32 on the
// current screen "Player" is on. It modifies the combo used,
// combo type, flags, etc. In the end, it looks like a block.
// This item will also change the location of the FFC so it
// always "spawns" 2 tiles away from Link in the direction he
// is currently facing. Becuase of limited knowledge, this
// script currently does not prevent you from walking onto the
// block. Any mention of "SomariaBlock" in the script refers to
// Freeform Combo 32. Have fun.

import "std.zh"
item script CaneSomaria
{
	void run()
	{
		int sound=30;
		ffc SomariaBlock= Screen->LoadFFC(32);
		if(Link->Dir == 0)
		{
			SomariaBlock->X = Link->X;
			SomariaBlock->Y = Link->Y - 16;
		}
		else if(Link->Dir == 1)
		{
			SomariaBlock->X = Link->X;
			SomariaBlock->Y = Link->Y + 16;
		}
		else if(Link->Dir == 2)
		{
			SomariaBlock->X = Link->X - 16;
			SomariaBlock->Y = Link->Y;
		}
		else if(Link->Dir == 3)
		{
			SomariaBlock->X = Link->X + 16;
			SomariaBlock->Y = Link->Y;
		}
		float remainder = SomariaBlock->X % 16;
		if ( remainder <= 8 )
		{
			SomariaBlock->X = SomariaBlock->X - remainder;
		}
		else
		{ 
			SomariaBlock->X = SomariaBlock->X + 16 - remainder;
		}
		SomariaBlock->Data = A;
		SomariaBlock->CSet = B;
	}
}
Replace A with the number of the combo this block uses and B with its Cset. It has no combo type BECAUSE IT CAN BE PUSHED REGARDLESS OF ENEMIES. The bad news? ...I can't make the block solid. Oh yeah, this script puts the block one space away from Link, but you can increase that if you wish.

If you can make this block solid, let me know IMMEDIATELY so I can finally perfect this. By the way, yes, the FFC the Item (yes, ITEM) uses moves depending on where you are. Make it solid, and we've got the best puzzle EVER. Please help me. Oh yeah, thanks to C-Dawg for helping me learn how to script this. Thanks to him for also helping me with some code. Lastly, thanks to Fire Wizzrobe for telling me how to define "remainder" as a variable. Enjoy.