Reduce Wire.h size (tx/rx buffers)

I wanted to optimize the ram/flash of an arduino project so I used this tool to analyze the contents: What's Using My Arduino RAM and FLASH

The big 5 data users are:
32 Bytes twi_txBuffer
32 Bytes twi_rxBuffer
32 Bytes twi_masterBuffer
32 Bytes TwoWire::txBuffer
32 Bytes TwoWire::rxBuffer

Are the tx/rx buffers duplicates neccesary? And is masterBuffer necessary?

Are the tx/rx buffers duplicates neccesary? And is masterBuffer necessary?

Yes and no. Some of the buffers are only needed in slave mode (twi_txBuffer and twi_rxBuffer), some only in master mode (twi_masterBuffer). The two TwoWire::* buffers are needed to provide the high level interface the Wire library offers. So to answer your question: all buffers are needed if you want to use the Wire library with all it's functionality but you could eliminate some buffers if you don't need part of the functionality and you want to cut the library back to your needs.

Show us your sketch, and we can tell what you can do.

Do you really need to shrink the ram and flash usage ? Or is this just a fun exercise ?
Perhaps your project requires an other Arduino board.

One way to reduce RAM usage is to use the (F) macro. example: Serial.print("Good Morning Have a Great Day"); with Serial.print(F("Good Morning Have a Great Day")); Will save you 29 bytes of RAM. The compiler causes the Arduino to place all messages in RM at startup. This method a bit slower does not do that.
Serial.print("Good Morning Have a Great Day"):