If you do the above hack but with a 62256 RAM chip instead of the 27C256 and you put an appropriate connection or switch on the R/!W line to !WE pin in the RAM chip then what you get is very close to... the ultimate expander.
A slight difference concerning A14, however, I connected my LS08 in the following manner:
/BLK1 AND /BLK3 to A13
/BLK1 AND /BLK2 to A14
A14 AND (/BLK3 AND /BLK5) to /CE + /OE ->edit: line corrected
The resulting truth table is:
Input: ----------------- Output:
/B1 | /B2 | /B3 | /B5 | A14 | A13 | /CE + /OE
1 --- 1 ---- 1 ---- 1 ---- 1 ---- 1 ---- 1
0 --- 1 ---- 1 ---- 1 ---- 0 ---- 0 ---- 0
1 --- 0 ---- 1 ---- 1 ---- 0 ---- 1 ---- 0
1 --- 1 ---- 0 ---- 1 ---- 1 ---- 0 ---- 0
1 --- 1 ---- 1 ---- 0 ---- 1 ---- 1 ---- 0
There is your 32k RAM expansion but with a simpler LS08 instead of the LS148.
A simple SPDT switch that toggles the !WE pin of the SRAM chip between VR/W (cart port pin 17) and +5V via a 4.7k resistor can be used to switch your RAM expansion between Read-write and read-only mode for full compatibility with all cart images.
Also since you specify that you have a good number of 27c256, then by connecting your LS08 as I just mentioned, you could hack a commodore cart to become a host to a 32k game... if anybody ever felt like creating one...
The resulting address translation makes the following ROM address ranges visible to the VIC at these BLK areas:
$0000-$1FFF in the ROM for BLK1
$2000-$3FFF in the ROM for BLK2
$4000-$5FFF in the ROM for BLK3
$6000-$7FFF in the ROM for BLK5
These addresses, of course, are not VIC address ranges but addresses to use when programming your ROM chip.