Field sizes are defined in apoc'r.bas, where I do the actual reading of the data. Each read_... sub there contains a for loop like this
dim as ubyte btmp
for record=0 to sel3max
get #mainfile(0), ,btmp
maindata(record,0)=btmp 'main data
'ideally these should get their own loop
othrdata(0,0,0)=1 'record length
othrdata(0,0,1)=1 'input modifier (1 = cycle up)
sel3max is the number of records
btmp is an unsigned byte, so the get operation reads one byte and puts it in the maindata array.
othrdata(0,0,0)=1 also defines the length of this field as one byte. This is later used for saving and also for showing the hex value in the editor.
So to change the length of a field you will have to change othrdata(0,X,0) and also use the proper variable in the get operation (byte/short/int/...)
When you change the length you will probably also need to add or remove existing fields. For this you need to change sel4max, which defines the number of fields. Then you remove or add a few gets, and review the misc_... sub to make sure the linktext and misctext references are still good.
Obviously this is not as trivial as it should be