So, approach 2. This works, but I feel like there has to be a better way.. Seems excessive to me, the way I've done it.
public static void onMiniPlaced(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
String facing = placer.getHorizontalFacing().toString();
if (facing == "north") {
worldIn.setBlockState(pos.add(-1, 0, 0), ModBlocks.BLOCK_FRONT_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(0, 0, 0), ModBlocks.BLOCK_FRONT_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(1, 0, 0), ModBlocks.BLOCK_FRONT_RIGHT.getDefaultState());
worldIn.setBlockState(pos.add(-1, 0, -1), ModBlocks.BLOCK_BACK_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(0, 0, -1), ModBlocks.BLOCK_BACK_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(1, 0, -1), ModBlocks.BLOCK_BACK_RIGHT.getDefaultState());
worldIn.setBlockState(pos.add(1, 1, -1), ModBlocks.BLOCK_TOP_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(0, 1, -1), ModBlocks.BLOCK_TOP_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(-1, 1, -1), ModBlocks.BLOCK_TOP_RIGHT.getDefaultState());
} else if (facing == "east") {
worldIn.setBlockState(pos.add(0, 0, -1), ModBlocks.BLOCK_FRONT_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(0, 0, 0), ModBlocks.BLOCK_FRONT_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(0, 0, 1), ModBlocks.BLOCK_FRONT_RIGHT.getDefaultState());
worldIn.setBlockState(pos.add(1, 0, -1), ModBlocks.BLOCK_BACK_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(1, 0, 0), ModBlocks.BLOCK_BACK_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(1, 0, 1), ModBlocks.BLOCK_BACK_RIGHT.getDefaultState());
worldIn.setBlockState(pos.add(1, 1, -1), ModBlocks.BLOCK_TOP_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(1, 1, 0), ModBlocks.BLOCK_TOP_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(1, 1, 1), ModBlocks.BLOCK_TOP_RIGHT.getDefaultState());
} else if (facing == "south") {
worldIn.setBlockState(pos.add(1, 0, 0), ModBlocks.BLOCK_FRONT_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(0, 0, 0), ModBlocks.BLOCK_FRONT_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(-1, 0, 0), ModBlocks.BLOCK_FRONT_RIGHT.getDefaultState());
worldIn.setBlockState(pos.add(1, 0, 1), ModBlocks.BLOCK_BACK_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(0, 0, 1), ModBlocks.BLOCK_BACK_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(-1, 0, 1), ModBlocks.BLOCK_BACK_RIGHT.getDefaultState());
worldIn.setBlockState(pos.add(-1, 1, 1), ModBlocks.BLOCK_TOP_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(0, 1, 1), ModBlocks.BLOCK_TOP_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(1, 1, 1), ModBlocks.BLOCK_TOP_RIGHT.getDefaultState());
} else if (facing == "west") {
worldIn.setBlockState(pos.add(0, 0, 1), ModBlocks.BLOCK_FRONT_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(0, 0, 0), ModBlocks.BLOCK_FRONT_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(0, 0, -1), ModBlocks.BLOCK_FRONT_RIGHT.getDefaultState());
worldIn.setBlockState(pos.add(-1, 0, 1), ModBlocks.BLOCK_BACK_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(-1, 0, 0), ModBlocks.BLOCK_BACK_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(-1, 0, -1), ModBlocks.BLOCK_BACK_RIGHT.getDefaultState());
worldIn.setBlockState(pos.add(-1, 1, 1), ModBlocks.BLOCK_TOP_LEFT.getDefaultState());
worldIn.setBlockState(pos.add(-1, 1, 0), ModBlocks.BLOCK_TOP_CENTER.getDefaultState());
worldIn.setBlockState(pos.add(-1, 1, -1), ModBlocks.BLOCK_TOP_RIGHT.getDefaultState());
}
}