The output scripting language uses bitcoin format. So both of these byte strings indicate the presence and length of the forthcoming block of data. You can find all the details here: https://en.bitcoin.it/wiki/Script
Additional question: Yes, if you are building the transaction yourself without multichaind, you would need to add the change output yourself, to make sure assets balance across inputs and outputs.
But if it's an option you may also want to look at MultiChain's raw transaction APIs, like createrawtransaction, appendrawchange, appendrawtransaction